如何使用 SXSSF 写入现有文件?
How to write to an existing file using SXSSF?
我有一个 .xlsx 文件,其中包含多个包含不同数据的 sheet。在所有sheet中,有一个sheet需要容纳近100,000行数据,并且需要使用Java和poi写入数据。
这对于 SXSSFWorkbook 来说似乎非常快速和简单,我只能在内存中保留 100 行,但缺点是我只能写入新文件(或覆盖现有文件)。
此外,我不允许 'load' 现有文件,即
SXSSFWorkbook wb = new SXSSFWorkbook(file_input_stream)
不允许。
我可以使用工作簿工厂:
Workbook workbook = new SXSSFWorkbook();
workbook = WorkbookFactory.create(file_input_stream);</pre>
但是当我刷新行的时候,
((SXSSFSheet)sheet).flushRows(100); </pre>
我收到错误消息,不允许从 XSSFSheet 到 SXSSFSheet 的类型转换。
我试图查看是否有任何方法可以跨不同的工作簿复制 sheets,但到目前为止,它似乎必须逐个单元地完成。
对如何解决这个问题有什么见解吗?
您可能有一个要向其添加大数据的模板。您需要使用 SXSSFWorkbook(XSSFWorkbook)
构造函数:
XSSFWorkbook wb = new XSSFWorkbook(new File("template.xlsx"));
SXSSFWorkbook wbss = new SXSSFWorkbook(wb, 100);
Sheet sheet = wbss.createSheet("sheet1");
// now add rows to sheet
我有一个 .xlsx 文件,其中包含多个包含不同数据的 sheet。在所有sheet中,有一个sheet需要容纳近100,000行数据,并且需要使用Java和poi写入数据。
这对于 SXSSFWorkbook 来说似乎非常快速和简单,我只能在内存中保留 100 行,但缺点是我只能写入新文件(或覆盖现有文件)。
此外,我不允许 'load' 现有文件,即
SXSSFWorkbook wb = new SXSSFWorkbook(file_input_stream)
不允许。
我可以使用工作簿工厂:
Workbook workbook = new SXSSFWorkbook(); workbook = WorkbookFactory.create(file_input_stream);</pre>
但是当我刷新行的时候,
((SXSSFSheet)sheet).flushRows(100); </pre>
我收到错误消息,不允许从 XSSFSheet 到 SXSSFSheet 的类型转换。
我试图查看是否有任何方法可以跨不同的工作簿复制 sheets,但到目前为止,它似乎必须逐个单元地完成。
对如何解决这个问题有什么见解吗?
您可能有一个要向其添加大数据的模板。您需要使用 SXSSFWorkbook(XSSFWorkbook)
构造函数:
XSSFWorkbook wb = new XSSFWorkbook(new File("template.xlsx"));
SXSSFWorkbook wbss = new SXSSFWorkbook(wb, 100);
Sheet sheet = wbss.createSheet("sheet1");
// now add rows to sheet