com.alibaba.excel.exception.ExcelGenerateException: Create workbook failure

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();
  • 10
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值