Java 是否可以先读取然后写入同一个电子表格文件?

Java 是否可以先读取然后写入同一个电子表格文件?,java,apache-poi,Java,Apache Poi,即,我正在读取单元格(0)和行(0)值,然后在同一文件的同一位置写入新文本 可以这样做吗?我假设您正在使用一些额外的库来读取和写入电子表格。如果是这种情况,只需再次指向同一位置即可写入任何值 有关更多信息,请参阅。另外,如果可能,请提供您的代码,以便我们能够更好地理解它并提供良好的解决方案。据我所知,您不能在附加模式下打开excel,因此您需要使用java库(如Apache POI)创建新的excel。这就是使用Apache POI的方法。该代码适用于xls和xlsx工作簿 //Load the

即,我正在读取
单元格(0)
行(0)
值,然后在同一文件的同一位置写入新文本


可以这样做吗?

我假设您正在使用一些额外的库来读取和写入电子表格。如果是这种情况,只需再次指向同一位置即可写入任何值


有关更多信息,请参阅。另外,如果可能,请提供您的代码,以便我们能够更好地理解它并提供良好的解决方案。

据我所知,您不能在附加模式下打开excel,因此您需要使用java库(如Apache POI)创建新的excel。

这就是使用Apache POI的方法。该代码适用于xlsxlsx工作簿

//Load the workbook into the memory
FileInputStream fis = new FileInputStream("filename_of_your_workbook");
Workbook workbook = WorkbookFactory.create(fis);

//Modify the workbook as you wish
//As an example, we override the first cell of the first row in the first sheet (0-based indices)
workbook.getSheetAt(0).getRow(0).getCell(0).setCellValue("new value for A1");


//you have to close the input stream FIRST before writing to the same file.
fis.close() ;

//save your changes to the same file.
workbook.write(new FileOutputStream("filename_of_your_workbook")); 
workbook.close();

请注意,当您使用ApachePOI从现有文档创建工作簿对象时,它会将文档模型加载到内存中,所有更改都是临时的,除非您将其保留回文件系统。如果您在调用
workbook.write()
时提供了相同的文件名,那么您基本上是在将更改保存到同一个文件。

在进行否决表决之前,请告诉我们post有什么问题。也许我们可以编辑并提出更好的方法。