java导出excel 提示文件格式或文件扩展名有误

不同格式的文件响应不同的链接类型.

XLSX文件格式的下载 

response.setContentType("application/vnd.openxmlformats officedocument.spreadsheetml.sheet");

public static String export2Web4File(HttpServletResponse response, String path, String excelName) throws UnsupportedEncodingException {
    File file = new File(path.concat(excelName).concat(ExcelTypeEnum.XLSX.getValue()));
    if (!file.exists()) {
        return "文件不存在!";
    }

    response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
    response.setCharacterEncoding("utf-8");
    // 这里URLEncoder.encode可以防止中文乱码
    excelName = URLEncoder.encode(excelName, "UTF-8");
    excelName = new String(new String(excelName + ExcelTypeEnum.XLSX.getValue()).getBytes(), "ISO8859-1");
    response.setHeader("Content-disposition", "attachment;filename=" + excelName);
    response.setHeader("Access-Control-Expose-Headers","Content-disposition");
    try (
            FileInputStream in = new FileInputStream(file);
            ServletOutputStream out = response.getOutputStream();
    ) {
        IOUtils.copy(in, out);
        return "导出成功!";
    } catch (Exception e) {
        log.error("导出文件异常:", e);
    }

    return "导出失败!";
} 

 XLS文件格式的下载 

response.setContentType("application/vnd.ms-excel");

public static String export2Web4FileList(HttpServletResponse response, String path, String excelName,List data) throws UnsupportedEncodingException {
        File file = new File(path.concat(excelName).concat(ExcelTypeEnum.XLSX.getValue()));
        if (!file.exists()) {
            return "文件不存在!";
        }
        response.setContentType("application/vnd.ms-excel");
        response.setCharacterEncoding("utf-8");
        // 这里URLEncoder.encode可以防止中文乱码
        excelName = URLEncoder.encode(excelName, "UTF-8");
        excelName = new String(new String(excelName + ExcelTypeEnum.XLSX.getValue()).getBytes(), "ISO8859-1");
        response.setHeader("Content-disposition", "attachment;filename=" + excelName);
        response.setHeader("Access-Control-Expose-Headers","Content-disposition");
        try {
            ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).withTemplate(file.getPath()).build();
            WriteSheet writeSheet = EasyExcel.writerSheet().build();
            if (CollectionUtils.isNotEmpty(data)) {
                excelWriter.fill(data, writeSheet);
            }
            excelWriter.finish();
            return "导出成功!";
        } catch (Exception e) {
            log.error("导出文件异常:", e);
        }

        return "导出失败!";
    }

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值