删除()函数不删除Excel中的任何行

我想使用下面的代码删除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中的所有行?

你的代码是好的,是从表中删除行,但它不会反映在原始文件的变化,除非你写在新的文件或相同的文件。

这里是代码:

 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();