java poi 删除制定excel表格,使用Apache POI在Excel中删除多行

在使用Apache POI处理Excel文件时,遇到一个问题:当删除部分行后,SUM函数和图表未正确更新。尝试了shiftRows方法和直接删除行的两种方式,但导致了#REF错误或图表位置错误。需要找到一种方法,通过POI实现删除行的同时,保持公式和图表的正确性。
摘要由CSDN通过智能技术生成

我有一个包含75行的表格的Excel工作表。 在第76行我有各列=SUM(A1:A75)和=SUM(B1:B75) 在第77到第92位的行我有一个Excel图表这需要A1的总功能:A75和B1:B75为值

1cb72bfe67114381de7bd06ecb235b56.png使用Apache POI在Excel中删除多行

如果我使用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排Apache的行当量76至92和包括总功能和图表)

我也曾尝试

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

它是xls还是xlsx? –

2015-04-01 15:16:02

+0

XSSFWorkbook - xlsx(我也更新了这个问题) –

2015-04-01 15:19:05

+0

你需要将其中的两个组合起来。在此代码中根据需要播放索引:'HSSFRow rowToRemove = sheet.getRow(currentRowIndex); \t \t \t sheet.shiftRows(currentRowIndex + 1,lastRowIndex,-1); \t \t \t sheet.removeRow(rowToRemove);' –

2015-04-01 15:22:13

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值