是否可以先读取然后写入相同的电子表格文件?

时间:2016-01-29 06:41:56

标签: java apache-poi

即。我正在阅读Cell(0)Row(0)值,然后我在同一个文件中的同一个地方写下新文字。

是否可以这样做?

3 个答案:

答案 0 :(得分:2)

这是你用apache-poi做的。该代码适用于 xls xlsx 工作簿。

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

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

答案 1 :(得分:-1)

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

查看http://howtodoinjava.com/apache-commons/readingwriting-excel-files-in-java-poi-tutorial/了解更多信息。此外,如果可以提供您的代码,以便我们能够更好地理解它并提供良好的解决方案。

答案 2 :(得分:-2)

据我所知,您无法在追加模式下打开Excel,因此您需要使用Apache POI等Java库创建新的Excel。