我正在尝试使用以下代码删除excel中的所有行:
InputStream oFile=new FileInputStream(DefectExcel);
Workbook oWB= WorkbookFactory.create(oFile);
Sheet sheet= oWB.getSheet(Sheet1);
Row oRow= sheet.getRow(i);
for (int i =0;i <=sheet.getLastRowNum(); i++) {
sheet.removeRow(sheet.getRow(i));
System.out.println("Row Deleted");
}
也尝试使用以下代码:
InputStream oFile=new FileInputStream(DefectExcel);
Workbook oWB= WorkbookFactory.create(oFile);
Sheet sheet= oWB.getSheet(Sheet1);
Row oRow= sheet.getRow(i);
Iterator<Row> rowIte = sheet.iterator();
while(rowIte.hasNext()){
System.out.println("Row deleted");
rowIte.next();
rowIte.remove();
在上述两个代码中,其打印行删除了可用行的次数,但最初的行仍未从excel中删除。
有人可以帮助解释为什么仍然没有从Excel中删除行,我该如何删除excel中的所有行?
答案 0 :(得分:0)
您的代码很好并且正在从工作表中删除行,但它不会反映原始文件中的更改,除非您在新文件或同一文件中写入这些更改。
以下是代码:
FileInputStream fis = new FileInputStream(new File("file.xlsx"));
Workbook workbook = new XSSFWorkbook(fis);
fis.close();
.........<some code>......
..........................
FileOutputStream is = new FileOutputStream("file.xlsx");
workbook.write(is);
is.close();