使用POI为excel列分配公式

时间:2012-04-24 10:03:28

标签: java excel apache-poi excel-formula

我想将公式frmo B5设置为B10004,公式取决于前一列的值。但公式应该适当地动态更新单元格引用

dvCarConstraint = 
    DVConstraint.createFormulaListConstraint(
        "INDIRECT(SUBSTITUTE($B$5, \" \", \"_\"))"
    );

addressList = new CellRangeAddressList(4, 10004, 2, 2);
dataValidation = new HSSFDataValidation(addressCarList, dvCarConstraint);
dataValidation.setSuppressDropDownArrow(false);
sheet.addValidationData(dataCarValidation);

当我打开excel时,列中的所有单元格都会显示INDIRECT(SUBSTITUTE($B$5, " ", "_")),而我期望的是INDIRECT(SUBSTITUTE($B$6, " ", "_")), $B$7等等......

如何在POI中执行此操作?

2 个答案:

答案 0 :(得分:0)

我不知道POI,但是如果您希望根据单元格位置更新公式,则可以在excel中取消$ -sign。你试过INDIRECT(SUBSTITUTE($B5, " ", ""))吗?

答案 1 :(得分:0)

我知道这是一个非常古老的问题,但对于遇到同样问题的其他人也可以使用这个解决方案: -

我遇到了同样的问题,在尝试了一些对我来说很合适的组合之后。

INDIRECT(UPPER($A1:$A500))