使用Apache POI HSSF,我們可以創建這樣Apache POI - 如何將XSSFWorkbook寫入POIFSFileSystem?
private void write(HSSFWorkbook workbook) {
POIFSFileSystem filesystem = new POIFSFileSystem();
filesystem.createDocument(new ByteArrayInputStream(workbook.getBytes()),
"Workbook");
FileOutputStream stream = new FileOutputStream("test.xls");
filesystem.writeFilesystem(stream);
}
同樣xls文件,我怎麼能寫有XSSFWorkbook
?這沒有getBytes()
方法。
我試圖從XSSFWorkbook
這樣創建ByteArrayInputStream
-
ByteArrayOutputStream baos = new ByteArrayOutputStream();
workbook.write(baos); //XSSFWorkbook here
ByteArrayInputStream bias = new ByteArrayInputStream(baos.toByteArray());
但創建的XLSX文件已損壞。如何使用POIFSFileSystem
將工作簿寫入光盤?
同樣XSSFWorkbook
被成功地寫時,我做了這樣的 -
FileOutputStream stream = new FileOutputStream("test.xlsx");
workbook.write(stream);
當我提取並比較了XLSX文件,沒有什麼區別。但是,當我直接對xlsx文件進行純文本比較(無需解壓縮)時,幾乎沒有差異。
所以問題應該在POIFSFileSystem
的createDocument()
和/或writeFilesystem()
方法中。有人可以讓我知道如何使用POIFSFileSystem
寫XSSFWorkbook
?