admin管理员组文章数量:1618722
Execel生成异常:创建工作簿失败
场景1
我的bug产生场景1:使用EasyExcel作导出的时候,抛出的这个异常。我导入的是xls后缀的文件
导出部分代码:
public void htDrXz(HttpServletResponse response) {
log.info("----------导入模板下载----------");
ClassPathResource resource = new ClassPathResource("/static/导入明细表.xlsx");
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("utf-8");
response.setHeader("Content-disposition", "attachment;filename=" + "导入明细表.xlsx");
try {
ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).withTemplate((resource.getInputStream())).build();
WriteSheet writeSheet = EasyExcel.writerSheet().build();
excelWriter.fill(new ArrayList<FpJgBcDaoRuNew>(), writeSheet);
excelWriter.finish();
} catch (Exception e) {
log.error("导入模板下载异常", e);
}
}
解决方法
将Excel文件,另存为xlsx后缀的文件。(注意:不要直接将xls后缀改为xlsx后缀,要另存为)
产生原因:估计是版本兼容问题
场景2
还有一种另存为依然报错的情况,最好在导出的时候,声明Excel的文件类型(ExcelTypeEnum.XLS或者ExcelTypeEnum.XLSX),因为EasyExcel默认是xlsx格式,导出xls不去声明类型,依然会报错Create workbook failure
具体声明位置和方法:
ExcelWriter excelWriter = EasyExcelFactory.write(response.getOutputStream())
.withTemplate(resource.getInputStream()).excelType(ExcelTypeEnum.XLS).build();
本文标签: ExceptionExcelAlibabaExcelGenerateExceptionfailure
版权声明:本文标题:com.alibaba.excel.exception.ExcelGenerateException: Create workbook failure 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1728785490a1173272.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论