[alibaba/easyexcel]导出后的文件打开提示:中部分内容有问题。是否尝试让我们尽量尝试恢复?

2024-05-11 597 views
4
   response.setContentType("application/vnd.ms-excel");
  response.setCharacterEncoding("utf-8");
  String fileName = URLEncoder.encode(excelName, "UTF-8").replaceAll("\\+", "%20");
  response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
  LongestMatchColumnWidthStyleStrategy longestMatchColumnWidthStyleStrategy = new LongestMatchColumnWidthStyleStrategy();
  RowWriteHandlerImpl rowWriteHandler = new RowWriteHandlerImpl(clazz);
  EasyExcel.write(response.getOutputStream(), clazz)
                .registerWriteHandler(longestMatchColumnWidthStyleStrategy)
                .registerWriteHandler(rowWriteHandler)
                .sheet(sheetName).doWrite(data);

异常提示 image

建议描述 本地环境没有问题,发布到线上后存在这个问题 打开文件时提示:发现“xxxx”中部分内容有问题。是否尝试让我们尽量尝试恢复?如果您信任此工作薄的源,请点击“是”

回答

7

boot jar 方式正常,现在改为docker 镜像,也遇到类似的问题。dockerfile 里面 jdk版本:jdk8:u292-b10-slim

2

同样遇到类似的问题。

8

同事解决了,是前端环境问题. 这边的场景是,前端不是在k8s(kong网关等)环境里面的,走的是另外的nginx, 服务端及中间件是在k8s环境。 同事把前端也部署到k8s,居然好了。具体原因不清楚。

8

同事解决了,是前端环境问题. 这边的场景是,前端不是在k8s(kong网关等)环境里面的,走的是另外的nginx, 服务端及中间件是在k8s环境。 同事把前端也部署到k8s,居然好了。具体原因不清楚。

2

建议把拦截器删了就行,大概率代码那里写的有问题。

4

response.addHeader("Content-Length", file.length() or stream available);