EPPlus可以区分Excel工作表中的空白单元格和空文本单元格吗?

时间:2016-04-24 13:22:20

标签: c# .net excel openxml epplus

我使用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类具有ValueFormulaStyle等属性,但在检查表示上述两个单元格的对象时,我看不出它们之间存在任何差异。

我知道我可以通过阅读原始XML或使用替代库(可能是ClosedXML或类似的)手动执行此操作,但如果可能的话,我想使用EPPlus执行此操作。

1 个答案:

答案 0 :(得分:5)

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

这适用于读写操作。

因此,如果使用epplus将空字符串写入单元格,则该单元格将包含空字符串(因此将显示为空白但不等于0),而如果使用epplus将单元格的值设置为null然后它将在excel中为空(并且仍将显示为空白但将等于0)

这同样适用于读取操作。如果您使用了撇号技巧,则可以从单元格的值中读取空字符串&#39;但是会获得空单元格值的空引用。