如何在Excel中对dynamic创build的单元格区域的列进行求和

在Excel电子表格中使用jxls forEach循环创build了许多行。 在这些行的每一行中,都有一组使用forEachdynamic创build的列。 所以,基本上一个细胞变成了几个细胞的范围和一些细胞下来。 在每个生成的单元格列的底部,我想要一个总和公式来总结列。 如果我把SUM(C3)放在细胞变成很多细胞的时候,我会得到一个错误,你不能SUM(C3:E3:C5:E5)或者是那个效果。

根据官方网页: http ://jxls.sourceforge.net/reference/formulas.html,jxls足够聪明地调整你的总和,当单元格变成一个范围下降,也跨越,但不是两个。

我还要提到,我希望forumlae坚持单元格,而不是只产生总和,所以如果我编辑上面的单元格,它会在下面的总数更新。

有谁能帮我解决这个问题吗?

这是我正在谈论的一个例子。我知道有错,因为我改变了一些文字,但希望你能明白。

此外,使用r1c1引用没有工作,因为当我导出A1的默认引用设置在Excel中,并将为任何人使用这种方式设置。 我试图设置启动macros使用r1c1单元格引用,但无济于事。

只是为了澄清你正在寻求一个解决scheme,如果我理解正确,你正在寻找一个公式来添加c3:e3的范围,也(在同一个公式中)c5:e5? 如果是这样,请尝试:

=总和(C3:E3)+ SUM(C5:E5)

这是你正在尝试?

我这样做了:

首先,将一个org.apache.poi.ss.util.CellReference对象添加到您的变换器bean:

Map<String, Object> beans = new HashMap<>(); ... beans.put("cellRef", new CellReference(0,0)); ... Workbook wb = transformer.transformXLS(xlsInputStream, beans); 

然后,在你的xls模板中使用公式:

 ${hssfCell.setCellFormula("SUM(" + cellRef.convertNumToColString(hssfCell.columnIndex) + "2:" + cellRef.convertNumToColString(hssfCell.columnIndex) + hssfCell.rowIndex + ")")}