使用Java Apache POI编写excel公式

时间:2017-02-28 00:51:57

标签: java excel apache-poi

我一直在寻找这个,但无法找到解决方案。希望有人可以帮助我。 我正在使用Apache POI创建一个简单的工具。公式将由用户输入,结果将写入文件。我坚持扩展/填充公式。

假设你有一个简单的excel公式:

IF(A2=B2,True,False)

在Excel上向下拖动会导致:

IF(A2=B2,True,False)
IF(A3=B3,True,False)
IF(A4=B4,True,False)
IF(A5=B5,True,False)
         . .
          .

现在我想在我的程序中做同样的事情。我会知道哪一行要结束。我只是不能让行索引增加。我已经手动完成了(在程序中编写公式),但现在我需要在用户传递公式时使用它。

我的手册部分有这样的内容:

for (int ind = 2; ind < rownumb ; ind++)
{
sheet.getRow(i).createCell(12).setCellFormula("IF(K" + ind + "=L" + ind + ",FALSE,TRUE)");
}

现在用户将输入:

 =IF(K=L, False, True) OR  =IF(K0=L0, False, True)

我想将这个公式自动填充(递增)一直添加到rownumb。我怎么能这样做?

如果没有直接的方式,有人可以建议其他方法,但要求是公式将由用户传递。

感谢。

1 个答案:

答案 0 :(得分:0)

Excel不会将其功能存储在工作表的单元格中。但作为VBA功能。为了能够自己正确使用excel功能,您需要模拟它。检查this article about user defined functions,这可能会让你前进。