for(Row row:sheet) {
for(int rowNo=0;rowNo<sheet.getLastRowNum();rowNo++) {
row=sheet.getRow(rowNo);
sheet.removeRow(row);
}
}
我试图通过java从Excel文件中删除行,但它给了我错误
java.util.ConcurrentModificationException at java.util.TreeMap $ PrivateEntryIterator.nextEntry(TreeMap.java:1207) 在java.util.TreeMap $ ValueIterator.next(TreeMap.java:1252)
答案 0 :(得分:1)
TreeMap
不支持并发删除。
您应该使用iterator
的删除方法
Iterator<Row> it = sheet.iterator();
while(it.hasNext())
{
Row row = it.next();
...
it.remove();
}
答案 1 :(得分:0)
您似乎没有使用外部for循环中的row
,因此您可以删除它:
for(int rowNo=sheet.getLastRowNum()-1; rowNo >= 0;rowNo--) {
row=sheet.getRow(rowNo);
sheet.removeRow(row);
}
另请注意,我正在向后迭代行,因此您最终不会删除所有其他行。