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) { row.removeCell(cell); } j++; } } } 

我得到ConcurrentModificationException

我看到一篇关于如何删除单元格的文章。 Apache POI xls列删除

这个想法对我来说很清楚。 我将需要创build一个行,在那里克隆必要的单元格,并删除行。

什么是其他解决scheme?

我也尝试创build一个替代行,克隆我需要的单元格,然后删除原始行。 我从这里采取这个想法。

Apache POI xls列删除

我希望看到一些更好的解决scheme,使用更less的代码或更有效的逐个删除单元格。

直接使用像下面这样的Iterator来更新Row

 Sheet sheet = wb.getSheetAt(0); Iterator<Row> rowIte = sheet.iterator(); while(rowIte.hasNext()){ rowIte.next(); rowIte.remove(); }