Groovy POI创build的单元格被其他程序视为空白,直到在单元格中手动按下ENTER

好吧,这是很难解释。

我使用JAVA POI在工作表中创build一个单元格

newCell= row.getCell(index) if (containerCell == null) { containerCell = row.createCell(index) } newCell.setCellType(HSSFCell.CELL_TYPE_STRING) newCell.setCellValue(strVar) 

如果我然后打开EXCEL中的工作表,我看到单元格值确实设置。 但是,如果我加载到另一个读取EXCEL表的外部程序,它声称我刚设置的单元格是空的。

现在,如果我回到Excel中,并在有问题的单元格上做一个简单的“命中返回”,在公式栏(即使它不是一个公式),并尝试将其重新加载到外部程序,它工作正常。 我需要评估一个string的公式吗?

谢谢

我没有Java的经验,但不得不击中进入一个单元格通常表示计算设置为手动。 由于您正在使用API​​,因此可能会将您input的Java视为公式(?)。

打开有问题的工作簿处于损坏状态,在有问题的工作表上,select顶部的[公式]选项卡,然后select[计算]>计算工作表。

如果这更新的价值,那么我看到两个选项…

查看是否有一个选项,可以在input值后手动计算带有POI的工作表。

或者,您可以只写一小块 VBA,以便在打开工作簿时强制在该工作表上进行计算。 MSDN提供了一个简单的例子。

http://msdn.microsoft.com/en-us/library/office/aa223802%28v=office.11​​%29.aspx

我必须这样做的Excel应用程序,其中计算必须设置为手动,以避免过度的开销。 只是猜测..

我不知道为什么会发生这种情况。评估单个单元并没有解决问题,但是在整个工作簿上运行evaluteAll()使其工作!