如果Excel文件处于打开状态,Excel文件不能被Java-Program访问
我的代码应该打印一个数字(在这种情况下数字5)到指定的Excel工作簿中指定的单元格。 如果Excel-Workbookclosures,代码将起作用。 但是,如果Excel-Workbook打开,运行代码时出现以下错误消息:
Exception in thread "main" java.io.FileNotFoundException: C:\Users\Username\Desktop\java-Programs\test.xlsm (The process can't access the file because it is used by another process)
代码如下:
XSSFWorkbook wb = new XSSFWorkbook(new FileInputStream(new File("C:\\Users\\Username\\Desktop\\java-Programs\\test.xlsm"))); XSSFSheet ExcelSheet = wb.getSheet("Output"); XSSFRow row = ExcelSheet.getRow(3); XSSFCell cell = row.getCell(0); cell.setCellValue(5); FileOutputStream fileOut = new FileOutputStream("C:\\Users\\Username\\Desktop\\java-Programs\\test.xlsm"); wb.write(fileOut); fileOut.close();
我想在运行java代码时保持文件打开。 有人知道我必须改变,以便能够保持运行代码时打开Excel文件?
Microsoft Excel将它已打开的文件放在独占锁。
因此,如果在Excel中打开文件时尝试写入任何其他应用程序中的文件,则在Windows上将失败。
当您需要写入文件时,可能没有其他解决scheme然后closuresExcel。
- 使用POI jar获取Excel SheetNames
- 格式为“date”的单元格中的date未被识别为date
- 在Excel电子表格中查找最后一行
- Apache POI在读取CSV转换的单元格数据时发生Java空指针exception
- Java – Apache POI – 在这种模式下填充循环和单元格是不可能的? (EXCEL)
- 数据写入一个Excel列Java
- Apache POI Event用户模型将Timestamp值读取为double
- 如何使用Apache POI和Java将Excel工作簿中的Excel工作表复制到另一个工作簿?
- Java Apache POI – XSSFCell setFillBackgroundColor无效