如何使用SXSSF写入现有文件?

我有一个包含不同数据的多个工作表.xlsx文件。 在所有表单中,需要容纳近100,000行的数据,并且数据需要用poi语言编写。

对于SXSSFWorkbook来说,这看起来相当快速和简单,我只能在内存中保留100行,但缺点是我只能写入新文件(或覆盖现有文件)。

此外,我不能'加载'现有的文件,即

SXSSFWorkbook wb = new SXSSFWorkbook(file_input_stream) 

不允许。

我可以使用工作簿工厂:

 Workbook workbook = new SXSSFWorkbook(); workbook = WorkbookFactory.create(file_input_stream); 

但是当我来冲刷行的时候,

  ((SXSSFSheet)sheet).flushRows(100); 

我得到了不允许从XSSFSheet到SXSSFSheet的types转换的错误。

我试图看看是否有任何方法将工作表复制到不同的工作簿中,但到目前为止似乎必须逐个单元地完成。

有关如何解决这个问题的任何见解?

你可能有一个你想添加大数据的模板。 您需要使用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