1
有沒有辦法使用java中的Writer
類生成一個xlsx文件?我可以使用Writer類生成xlsx文件嗎?
我使用,以產生轉換爲字節陣列的工作簿的方法:
private byte[] generateXlsxBytes() {
XSSFWorkbook workbook = new XSSFWorkbook();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
workbook.write(baos);
baos.close();
return baos.toByteArray();
}
我嘗試通過這樣做寫字節到作家:
Writer writer = ..get the writer..
IOUtils.write(generateXlsBytes(), writer);
但是,當我嘗試在excel中打開文件我收到一條消息,指出該文件的標記對擴展名(xlsx)不正確。
我使用定製的框架,它不會允許我使用FileOutputStream
直接寫入文件。如果有人能告訴我一種使用Writer
的方法,我會非常感激。
[作家](http://docs.oracle.com/javase/8/docs/api /java/io/Writer.html)用於編寫字符,並將字節數組傳遞給*自定義框架*,該框架明顯將字節編碼爲可能要寫入原始字節的字符。正如你所說的框架是*自定義的*,假設你可以修改/擴展它,我會建議你添加一個方法到'IOUtils',它需要一個[OutputStream](http://docs.oracle.com/ javase/8/docs/api/java/io/OutputStream.html),並通過傳遞一個'FileOutputStream'來使用該方法。 – A4L 2014-10-31 09:28:32
這應該工作。你確定你正在沖洗並正確關閉作家嗎? – 2014-10-31 09:32:46
如何添加一個方法到'IOUtils'?它是apache包的一部分。 – 2014-10-31 09:33:20