EPPlus 能否区分 Excel 工作表中的空白单元格和空文本单元格?

Can EPPlus distinguish between blank cells and empty text cells in an Excel worksheet?

我正在使用 EPPlus .NET 库 (v4.0.4) 来解释保存的 Excel 工作簿。在一个这样的工作表中,一些空单元格已使用 Excel 'apostrophe' 技巧设置为 'text' 格式(即,用户在这些单元格中输入了一个撇号,因此 Excel 会将它们显示为空白)。

两个这样的单元格的示例XML如下:

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

在这里,F6 有一个撇号(即是一个空文本单元格),G6 是真正的空白。

是否可以使用 EPPlus 读取此 'inline string' (inlineStr) 属性 或以其他方式区分这两个单元格? ExcelRange / ExcelRangeBase 类 具有 ValueFormulaStyle 等属性,但在检查表示上述两个单元格的对象时我看不出他们有什么区别。

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

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

这适用于读取和写入操作。

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

同样适用于读取操作。如果您使用了 'apostrophe trick',则可以从单元格的值中读取空字符串,但将获得空单元格值的空引用。