1、错误的转化方式,直接使用HSSFWorkbook
提供的 .getBytes(),
查阅资料地址:HSSFWorkbook API
byte[] bytes = workbook.getBytes();
查看资料发现 构建返回的byte[] 不是一个完整的Excel文件所需的所有数据,生成的文件会导致excel告警,可能部分版本无法打开文件。
2、正确的转换方式
ByteArrayOutputStream bos = new ByteArrayOutputStream();
try {
workbook.write(bos);
} finally {
bos.close();
}
byte[] bytes = bos.toByteArray();
对此而言,
close
实际上并不需要该调用ByteArrayOutputStream
,但是,恕我直言,无论如何将其包括在内都是很好的样式,以防以后将其更改为其他类型的流。