【问题标题】:Java, Apache POI, cell value won't change when seen from MS Excel从 MS Excel 中查看 Java、Apache POI、单元格值不会改变
【发布时间】:2015-07-27 18:43:12
【问题描述】:

我正在使用 Apache POI 修改现有的 Excel 文件 (something.xls)。 在我使用以下方法设置单元格值后:

sheet.getRow(3).getCell(30).setCellValue(222); 

我可以看到从同一个单元格读取值的变化:

 sheet.getRow(3).getCell(30).toString();

但是当我使用 MS Excel 打开 something.xls 文件时,更改消失了。

现在有趣的部分:

  • -如果我在没有设置单元格值的行的情况下重新运行代码,我仍然可以看到 222,所以变化就在那里,只有我看到 出于某种原因,来自 MS Excel 的旧值。

  • -我进行了三次检查,以确保我没有从代码编辑另一个文件并使用 Excel 打开另一个文件。

  • -我尝试以类似的方式更改其他一些随机单元格,有些工作正常,而另一些则没有。 (单元格不包含公式和所有 是数字类型)

如果有人能提供解释和解决方案,我将不胜感激。 提前致谢。

【问题讨论】:

  • 在设置值之前是否尝试过设置单元格类型:cell.setCellType(Cell.CELL_TYPE_STRING);
  • 该单元格可能是公式单元格吗?
  • 我也面临这个问题

标签: java excel apache-poi


【解决方案1】:

我将现有 excel 文件的内容(手动,没有任何格式)复制到一个新文件并再次格式化。它现在正在工作。我一定是第一次设置错了,但我不知道是什么。感谢您的回复。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多