我有一个.xlsx文件,其中包含包含不同数据的多个工作表。在所有工作表中,一个工作表需要容纳近100,000行数据,并且数据需要使用带poi的Java写入。
对于SXSSFWorkbook来说,这似乎非常简单快捷,其中我只能在内存中保留100行,但是缺点是我只能写入一个新文件(或覆盖现有文件)。
另外,不允许我“加载”现有文件,即
SXSSFWorkbook wb = new SXSSFWorkbook(file_input_stream) Run Code Online (Sandbox Code Playgroud) 不允许。
我可以使用Workbook工厂:
Workbook workbook = new SXSSFWorkbook();
workbook = WorkbookFactory.create(file_input_stream);Run Code Online (Sandbox Code Playgroud)
但是当我需要冲洗行时,
((SXSSFSheet)sheet).flushRows(100); Run Code Online (Sandbox Code Playgroud)
我收到错误消息,不允许从XSSFSheet到SXSSFSheet进行类型转换。
我试图查看是否有任何方法可以在不同的工作簿之间复制工作表,但到目前为止,似乎必须逐个单元地完成工作。
有关如何解决此问题的任何见解?
您可能正在向其添加大数据的模板。您需要使用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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10118 次 |
| 最近记录: |