在导出文件时,我错误的调用方式如下:
HSSFWorkbook wb = ExcelExportUtil.getHSSFWorkbook("一览表", uiry);
// 输出的文件流保存到本地文件
File file = new File(baseFilePath);
if (!file.exists()) {
file.mkdirs();
}
File tempFile = new File(baseFilePath);
OutputStream os = new FileOutputStream(tempFile);
//不同处
os.write(wb.getBytes());
wb.close();
os.close();
正确是调用方式:
HSSFWorkbook wb = ExcelExportUtil.getHSSFWorkbook("一览表", uiry);
// 输出的文件流保存到本地文件
File file = new File(baseFilePath);
if (!file.exists()) {
file.mkdirs();
}
File tempFile = new File(baseFilePath);
OutputStream os = new FileOutputStream(tempFile);
//不同处
wb.write(os)
wb.close();
os.close();
猜测:poi导出文件时在调用HSSFWorkbook的write方法时才会把格式相关数据转换为二进制写入附件。