如何将POI HSSFWorkbook转换为字节?

调用简单的toBytes()确实产生了字节,但toBytes()抛出警告。

丢失文档信息

谷歌搜索给了我这个链接 ,看着Javadocs的工作表和POI HOW-TO说类似的东西。 基本上我不能在不丢失某些信息的情况下获取Bytes而应该使用write方法。

虽然写入工作正常但我真的需要发送字节。 有什么方法可以做到吗? 这是得到字节没有得到任何警告。

正如该邮件列表post所说

调用HSSFWorkbook.getBytes()不会返回重构完整Excel文件所需的所有数据。

您可以将write方法与ByteArrayOutputStream一起使用来获取字节数组。

 ByteArrayOutputStream bos = new ByteArrayOutputStream(); try { workbook.write(bos); } finally { bos.close(); } byte[] bytes = bos.toByteArray(); 

(对于ByteArrayOutputStream ,实际上并不需要close调用,但是如果以后将其更改为不同类型的流,则无论如何都要包含它。

怎么样:

 ByteArrayOutputStream baos = new ByteArrayOutputStream(); workbook.write(baos); byte[] xls = baos.toByteArray(); 

要获取完整的excel文件,必须调用write(OutputStream)方法。 如果你想要那个字节,只需给出一个ByteArrayOutputStream