2016-04-24 215 views
2

我正在使用EPPlus .NET庫(v4.0.4)來解釋已保存的Excel工作簿。在一個這樣的工作表中,使用Excel'撇號'技巧(即用戶在這些單元格中輸入單撇號,以便Excel將它們顯示爲空白)將一些空單元格設置爲「文本」格式。EPPlus可以區分Excel工作表中的空白單元格和空白文本單元格嗎?

示例XML爲兩個這樣的細胞如下:

<c r="F6" s="1" t="inlineStr"> 
    <is> 
     <t /> 
    </is> 
    </c> 
    <c r="G6" s="1" /> 

這裏,F6有一個撇號(即是一個空的文本小區)和G6是真正空白。

是否可以使用EPPlus讀取此'內聯字符串'(inlineStr)屬性或以其他方式區分這兩個單元格? ExcelRange/ExcelRangeBase類具有如Value,Formula,Style等屬性,但在檢查代表上述兩個單元格的對象時,我看不到它們之間的任何差異。

我知道我可以通過閱讀原始XML或通過使用替代庫(可能是ClosedXML或類似的)手動執行此操作,但如果可能,我想使用EPPlus執行此操作。

回答

2

EPPlus使用null值表示空單元格,併爲包含空字符串的單元格返回空字符串。

這適用於讀寫操作。

因此,如果你使用epplus將空字符串寫入單元格,那麼該單元格將包含一個空字符串(因此將顯示爲空白但不會等於0),而如果使用epplus將單元格的值設置爲null,在excel中爲空(並且仍將顯示爲空白,但將等於0)

這同樣適用於讀取操作。如果您使用了'撇號技巧',您可以從單元格的值中讀取空字符串,但會爲空單元格的值獲取空引用。

+0

謝謝@Stewart_R,不知道我是如何錯過的。 –