我使用EPPlus .NET库(v4.0.4)来解释保存的Excel工作簿。在一个这样的工作表中,一些空单元格被设置为' text'格式使用Excel'撇号'技巧(即,用户在这些单元格中输入了单个撇号,因此Excel会将它们显示为空白)。
两个此类单元格的XML示例如下:
<c r="F6" s="1" t="inlineStr">
<is>
<t />
</is>
</c>
<c r="G6" s="1" />
这里,F6有一个撇号(即是一个空文本单元格),G6真的是空白。
是否可以阅读此内联字符串&#39; (inlineStr
)属性使用EPPlus或以其他方式区分这两个单元格? ExcelRange / ExcelRangeBase类具有Value
,Formula
,Style
等属性,但在检查表示上述两个单元格的对象时,我看不出它们之间存在任何差异。
我知道我可以通过阅读原始XML或使用替代库(可能是ClosedXML或类似的)手动执行此操作,但如果可能的话,我想使用EPPlus执行此操作。
答案 0 :(得分:5)
EPPlus使用null
值表示空单元格,并返回包含空字符串的单元格的空字符串。
这适用于读写操作。
因此,如果使用epplus将空字符串写入单元格,则该单元格将包含空字符串(因此将显示为空白但不等于0),而如果使用epplus将单元格的值设置为null然后它将在excel中为空(并且仍将显示为空白但将等于0)
这同样适用于读取操作。如果您使用了撇号技巧,则可以从单元格的值中读取空字符串&#39;但是会获得空单元格值的空引用。