Java ApachePOI可以有效地删除多个列
我有一个程序,可以更改给定目录中的多个excel文件。 我需要从excel文件中删除多个列。例如,我想删除第5列之后的所有列Java ApachePOI可以有效地删除多个列,java,excel,apache-poi,Java,Excel,Apache Poi,我有一个程序,可以更改给定目录中的多个excel文件。 我需要从excel文件中删除多个列。例如,我想删除第5列之后的所有列 private void deleteColumns(Sheet sheet, int columnIndex) { for (Row row : sheet) { int j = 0; for (Cell cell : row) { if (j >= columnIndex) {
private void deleteColumns(Sheet sheet, int columnIndex) {
for (Row row : sheet) {
int j = 0;
for (Cell cell : row) {
if (j >= columnIndex) {
row.removeCell(cell);
}
j++;
}
}
}
我得到ConcurrentModificationException
我看到一篇关于如何删除单元格的帖子。
这个想法我很清楚。我需要创建一行,克隆必要的单元格,然后删除该行
其他解决方案是什么
我还尝试创建一个替代行,克隆我需要的单元格,然后删除原始行。我从这里接受了这个想法
我希望看到一些更好的解决方案,代码更少或更有效,然后逐个删除单元格。不要直接更新行,而是使用下面的迭代器
Sheet sheet = wb.getSheetAt(0);
Iterator<Row> rowIte = sheet.iterator();
while(rowIte.hasNext()){
rowIte.next();
rowIte.remove();
}
Sheet Sheet=wb.getSheetAt(0);
迭代器rowIte=sheet.Iterator();
while(rowIte.hasNext()){
rowIte.next();
rowIte.remove();
}
这个问题可能会有帮助:我不需要删除前K列,其中K是columnIndex
。链接问题仍然存在apply@RC. 是的,谢谢,我明白了。我会想。看这个……我接受这个答案,因为没有其他解决方案。但我仍然对使它比为每行逐个删除单元格更有效感兴趣。此答案中的代码尝试删除工作簿第一页中的所有行。这与问题有什么关系?嗨,阿克塞尔。这个答案解决了问题中提到的“ConcurrentModificationException”问题。。