Java 如何将POI HSSF工作簿转换为字节?

Java 如何将POI HSSF工作簿转换为字节?,java,apache-poi,Java,Apache Poi,调用Simple会产生字节,但exel会抛出警告 丢失的文件信息 谷歌搜索给了我这个,并查看工作表和POI说了类似的事情。基本上,我不能在不丢失一些信息的情况下获取字节,应该使用写入方法 虽然write可以很好地工作,但我确实需要发送字节。我有办法做到吗?这就是在没有任何警告的情况下获取字节。正如邮件列表中的帖子所说 调用不会返回重新调用所需的所有数据- 构建一个完整的Excel文件 可以将write方法与一起使用来获取字节数组 ByteArrayOutputStream bos = new B

调用Simple会产生字节,但exel会抛出警告

丢失的文件信息

谷歌搜索给了我这个,并查看工作表和POI说了类似的事情。基本上,我不能在不丢失一些信息的情况下获取
字节
,应该使用
写入
方法


虽然write可以很好地工作,但我确实需要发送字节。我有办法做到吗?这就是在没有任何警告的情况下获取字节。

正如邮件列表中的帖子所说

调用不会返回重新调用所需的所有数据- 构建一个完整的Excel文件

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

ByteArrayOutputStream bos = new ByteArrayOutputStream();
try {
    workbook.write(bos);
} finally {
    bos.close();
}
byte[] bytes = bos.toByteArray();
(ByteArrayOutputStream实际上不需要调用
close
,但我认为无论如何都应该包含
close,以防以后更改为其他类型的流。)

怎么样:

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

为了获得完整的excel文件,必须调用write(OutputStream)方法。如果您想从中获取字节,只需给出一个ByteArrayOutputStream

我们如何以相反的方式进行操作。。?我的意思是HSSFWorkbook?@ChetanNellekeri的字节数组对于任何使用C的人来说,作为一个单独的问题来提问可能更好一些,这在那里也很有效,ByteArrayOutputStream在NPOI.utils中提供