我有一张包含75行表格的Excel表格。
在第76行,我有每列=SUM(A1:A75)
和=SUM(B1:B75)
的总函数
在第77行到第92行中,我有一个Excel图表,其中A1:A75和B1:B75表示值
如果我使用Apache POI填充所有75行,那么一切看起来都很棒。 (我正在使用XSSFWorkbook)
如果我使用Apache POI只填充30行,那么我想删除31到75行。这是我遇到问题的地方。
如果我在Excel中删除这些行,则总功能更新,Excel图表更新为使用A1:A30和B1:B30,Excel图表向上移动到第31行。
我想使用Apache POI镜像这种行为
这就是我试过的
xlsTable.shiftRows(75,91,-45)
(第75行到第91行是Excel第76行到第92行的Apache Row等值,包括Total函数和图表)
我也试过
for (int i = 75; i > 30; i--) {
Row r = CellUtil.getRow(i, xlsTable);
xlsTable.removeRow(r);
}
和
for (int i = 30; i < 75; i) {
Row r = CellUtil.getRow(i, xlsTable);
xlsTable.removeRow(r);
}
这些只会导致我的工作表因#REF错误而变得混乱。我想我可能无法使用POI,并且我需要实际构建我的整个工作表以获得必要数量的行,然后添加图表。不过我以为我会问!
答案 0 :(得分:0)
到目前为止,我找到的最佳解决方案是简单地隐藏行。通过这种方式,大部分问题都得到了解决。
更准确地说,还可以为列指定命名范围,然后将图表设置为使用这些命名范围,然后使用代码更新命名范围。但是仍然需要隐藏行。