我能夠使用XSSF讀取現有XLSM和使用SXSSF數據寫入工作表。最後將其輸出爲OutputStream的另一個xlsm。
SXSSF是在文檔
寫XLSX提的是正確的方法來讀取和寫入大量數據或文件XLSM如果這個解決方案會做會損壞?
這是示例代碼的作品,閱讀模板XLSM和寫作使用SXSSF(POI),大數據,現有工作表
public static void main(String[] args) throws Throwable {
OPCPackage pkg = OPCPackage.open(new File("sample.xlsm"));
XSSFWorkbook wb_template;
wb_template = new XSSFWorkbook(
pkg
);
System.out.println("package loaded");
SXSSFWorkbook wb = new SXSSFWorkbook(wb_template);
wb.setCompressTempFiles(true);
SXSSFSheet sh = (SXSSFSheet) wb.createSheet();
sh.setRandomAccessWindowSize(100);// keep 100 rows in memory, exceeding rows will be flushed to disk
for(int rownum = 4; rownum < 5000; rownum++){
Row row = sh.createRow(rownum);
for(int cellnum = 0; cellnum < 10; cellnum++){
Cell cell = row.createCell(cellnum);
String address = new CellReference(cell).formatAsString();
cell.setCellValue(address);
}
}
FileOutputStream out = new FileOutputStream(new File("C:\\ouput\\new_file.xlsm"));
wb.write(out);
out.close(); }
SXSSF。如果你的代碼用於加載XSSF,爲什麼不繼續使用它呢? – Gagravarr
@Gagravarr:我試過它作爲web應用程序,並獲得堆轉儲併發用戶..有沒有其他的方式來加載工作簿,然後使用sxssf? – Sva