使用 Apache POI HSSF,我们可以像这样创建 xls 文件
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);
}
同样,我该如何写XSSFWorkbook
?这个没有getBytes()
办法。
我试图ByteArrayInputStream
从XSSFWorkbook
这样创建 -
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 文件进行纯文本比较(不提取)时,字节几乎没有差异。
createDocument()
所以问题应该出writeFilesystem()
在POIFSFileSystem
. 有人可以让我知道如何写XSSFWorkbook
usingPOIFSFileSystem
吗?