java excel 数组公式_在Apache poi中的数组公式

在Apache poi中的数组公式

我有一个Excel表格(xslx),我已经定义了一个数组公式( https://support.office.com/zh-cn/article/Guidelines-and-examples-of-array-formulas-7D94A64E-3FF3-4686- 9372-ECFD5CAA57C7 )。 这就像在excel itselt中的魅力一样。 我使用apache poi来编程该excel表单中的一些值。 操作后,我想重新计算该数组公式的结果,但我不知道该怎么做。 用“正常”的公式我做如下:

FormulaEvaluator evaluator = workbook.getCreationHelper().createFormulaEvaluator(); XSSFRow row = sheet.getRow(i); Cell cell = row.getCell(j); evaluator.evaluateCell(cell); double value = cell.getNumericValue();

对于使用数组公式的方法

void setCellArrayFormula(String formula, CellRangeAddress range)

在类XSSFCell和

public CellRange setArrayFormula(String formula, CellRangeAddress range)

在类XSSFSheet中。

通过像cell.setCellArrayFormula("SUM(ABS(H2:H5))", new CellRangeAddress(2,5,7,7));调用设置公式后cell.setCellArrayFormula("SUM(ABS(H2:H5))", new CellRangeAddress(2,5,7,7)); 我不知道如何得到该公式的结果(但我也不知道这是否是在Apache poi中使用数组公式的正确方法。在Excel中,我必须这样做{=SUM(ABS(H2:H5))} )

有谁知道如何在apache poi中使用数组公式? 谢谢!

Apache POI(3.17)的当前版本不支持这样的数组公式。 什么(我相信) Sheet.setArrayFormula()所做的是将相同的公式应用于一些单元格来优化文件大小。

然而好消息是,这些types的公式支持POI 4.0(目前仅限于matrixtypes的操作,所以你的例子在当前夜晚仍然不起作用)。 为什么这个好消息? 因为这些作品已经开始出现,可以在某些时候支持所有这些公式。 所以我认为它会发生(注意:我没有参与POI项目,我只是使用它,这个function对我来说很重要)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值