【问题标题】:How to write to an existing file using SXSSF?如何使用 SXSSF 写入现有文件?
【发布时间】:2015-08-15 21:09:33
【问题描述】:

我有一个 .xlsx 文件,其中包含多个包含不同数据的工作表。在所有表格中,一张表格需要容纳近 100,000 行数据,并且需要使用 Java 和 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 的类型转换的错误。

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

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

【问题讨论】:

    标签: java excel apache-poi xssf


    【解决方案1】:

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

    【讨论】:

    猜你喜欢
    • 2020-02-18
    • 1970-01-01
    • 1970-01-01
    • 2018-09-23
    • 2011-03-01
    • 2012-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多