使用Apache POI Java修改现有的Excel文件

所以我遇到了修改excel文件的问题。 我不确定在输出stream的时候,我写这个目录的方式是错误的,但是数据永远不会被修改。 我没有收到任何错误,我的桌面上没有创build新文件,现有的文件保持不变。 我知道我的数据被修改正在发生,因为我的目标是删除与以前的行有相同数据的行。 我打印出我的ArrayList和所有重复的行被删除。 请帮忙! 顺便说一句,在OX X上运行。

public class readInExcel { static void readExcel() throws IOException { JFileChooser fileChooser = new JFileChooser(); FileNameExtensionFilter filter = new FileNameExtensionFilter( "xls","xlsx"); fileChooser.setFileFilter(filter); fileChooser.setCurrentDirectory(new File(System.getProperty("user.home"))); int returnVal = fileChooser.showOpenDialog(new JPanel()); if(returnVal == JFileChooser.APPROVE_OPTION) { File OGFile = fileChooser.getSelectedFile(); String fileName = "user.home.Desktop"; XSSFWorkbook wb; try (InputStream is = new FileInputStream(OGFile)) { wb = new XSSFWorkbook(is); XSSFSheet sheet = wb.getSheetAt(0); ArrayList<String> data = new ArrayList<>(); Iterator<Row> rowIterator = sheet.iterator(); //Row row = rowIterator.next(); XSSFRow currentRow; int a = sheet.getPhysicalNumberOfRows(); int columnIndex = 18; for (int rowIndex = 2; rowIndex <= a; rowIndex++) { Row row = CellUtil.getRow(rowIndex, sheet); Cell cell = CellUtil.getCell(row, columnIndex); data.contains(cell.getStringCellValue()); if(data.contains(cell.getStringCellValue())) if(row != null) sheet.removeRow(row); else data.add(cell.getStringCellValue()); } } try (FileOutputStream outFile = new FileOutputStream(new File("user\\home\\Desktop\new.xlsx"))) { wb.write(outFile); } } } 

}