当前位置: 首页 > 知识库问答 >
问题:

使用ApachePOI的Sax解析器时重新评估公式计算单元

燕意蕴
2023-03-14

由于内存问题,我们使用ApachePOI的Sax解析器方法来读取大量数据。xlsx excel文件。然而,这种方法在公式单元格中似乎有局限性。它似乎从“缓存的公式值”中读取值。我找不到触发重新计算以更新值的最佳解决方案。有人面临同样的问题吗?谢谢

共有1个答案

胡鸿禧
2023-03-14

这方面的一般解决方案可能非常困难,因为公式重新计算可能需要随机访问任何表中的任何单元格,因为公式可以引用它们,这是使用SAX时无法做到的。

您可能可以实现自己的公式评估器,它可以对可能的公式和引用类型进行一些限制,但可能需要做一些工作。

有关. xlsx的实现,请参见XSSF公式评估器,该实现严重依赖XSSFWorkbook/XSSFSheet/XSSFRow/XSSFCell类。

 类似资料:
  • 我的代码设置了很多单元格值。最后,在生成excel文件之前,需要评估每个单元格中的公式。对于大多数床单来说,一切都很顺利。 但是,有一个单元格正在引发异常。该单元格正在计算其后面的一系列单元格和其他工作表中的参考单元格的平均值。我猜当第一个单元格试图计算平均值时,后面的单元格尚未计算。 这是那个单元格上的公式 我怀疑是因为单元格int限制了其他工作表中的引用单元格。例如,D2具有以下公式。 所以我

  • 我阅读了一份excel表格,其中包含ApachePOI的EventUserModel,它使用SAX解析器进行操作。 问题是我有一些普通的单元格,内容像“hello”,而单元格的内容像这样: 我不需要这些公式,但需要它们的评估值,例如“hello”。我知道它保存在XML中,但我不知道如何访问它。 似乎有一个“公式”标记,SAX总是返回这个值而不是数据值。否则将返回正常的“hello”。 我的代码如下

  • 我正在使用NPOI从Excel2003文件中读取数据。这些文件包含如下公式('1:2'!$C$17)。NPOI识别像SUM('1'!$C$17)这样的公式(W/O表2),并计算无效的结果。我使用的是NPOI示例中的常规代码,比如

  • 问题内容: 它很好用,但是我希望它返回一个包含所有字符串的数组,而不是最后一个元素返回一个字符串。 任何想法如何做到这一点? 问题答案: 因此,你想构建一个XML解析器来解析这样的RSS feed。 现在,你可以使用两个SAX实现。你可以使用org.xml.sax或android.sax实现。在发布简短的示例后,我将解释两者的优点和缺点。 android.sax Implementation 让我

  • 问题内容: 它很好用,但是我希望它返回一个包含所有字符串的数组,而不是最后一个元素返回一个字符串。 任何想法如何做到这一点? 问题答案: 因此,你想构建一个XML解析器来解析这样的RSS feed。 现在,你可以使用两个SAX实现。你可以使用org.xml.sax或android.sax实现。在发布简短的示例后,我将解释两者的优点和缺点。 android.sax实现 让我们从实现开始。 你首先必须

  • 首先,我认为这个错误是因为一个确切的文件。但是错误发生在不同的文件在不同的时间。如何使SAX解析器停止连接到Internet?