调用 SimpletoBytes()
确实会产生字节,但 exel 会引发警告。
丢失文件信息
谷歌搜索给了我这个链接并查看Javadocs for worksheet 和 POI HOW-TO say similar things 。基本上我不能不Bytes
丢失一些信息而应该使用该write
方法。
虽然 write 工作正常,但我真的需要将字节发送过来。有什么办法可以做到吗?那就是在没有任何警告的情况下获取字节。
正如那个邮件列表帖子所说
调用
HSSFWorkbook.getBytes()
不会返回重建完整 Excel 文件所需的所有数据。
您可以使用带有 a 的 write 方法ByteArrayOutputStream
来获取字节数组。
ByteArrayOutputStream bos = new ByteArrayOutputStream();
try {
workbook.write(bos);
} finally {
bos.close();
}
byte[] bytes = bos.toByteArray();
(close
a 并不真正需要调用ByteArrayOutputStream
,但恕我直言,无论如何包含它是一种很好的风格,以防它后来更改为不同类型的流。)
怎么样:
ByteArrayOutputStream baos = new ByteArrayOutputStream();
workbook.write(baos);
byte[] xls = baos.toByteArray();
为了得到一个完整的 excel 文件,你必须调用 write(OutputStream) 方法。如果你想从中得到字节,只需给出一个 ByteArrayOutputStream