【问题标题】:How to remove a formula from an Excel sheet using the POI api?如何使用 POI api 从 Excel 工作表中删除公式?
【发布时间】:2012-06-15 00:10:50
【问题描述】:

使用 cell.setCellFormula(null) 方法我们可以删除公式,但它会影响具有取决于此单元格的值的单元格。我想从整个工作表中删除所有公式而不更改任何单元格的值。请给我一些建议...

【问题讨论】:

标签: excel apache-poi excel-formula


【解决方案1】:

您的问题有点模棱两可,但我会猜测您的目标并回答我认为您的意思......

假设一个 excel 文件看起来像这样:

|   |      A      |     B   |    C    |
| 1 |      2      |     4   |    6    |
| 2 | =SUM(A1:C1) | =A2*3   | =A2*4   |

我相信您所追求的是从 A2 中删除公式,但保留当前计算的值 (12),以便公式 B2 和 C2 不受影响?

有两种方法可以做到这一点。如果您刚刚加载了文件,并且没有对其进行任何更改,那么这很容易。您需要做的就是将单元格类型从公式单元格更改为数字单元格。它将保留旧的计算值。

sheet.getRow(1).getCell(0).setCellType(Cell.CELL_TYPE_NUMERIC);

如果您对文件区域进行了其他更改,那么您需要做的是评估单元格,然后将内容替换为评估值。您可以使用公式解析器执行此操作,使用 evaluteInCell 方法。

【讨论】:

  • 这是一个错误的解决方案,你会得到:Cannot get a numeric value from a text formula cell
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-02
  • 2014-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多