XSSFSheet 创建excel文件导出提示文件存在部分问题需要修复问题解决

位置:首页>文章>详情   分类: 教程分享 > Java教程   阅读(4554)   2023-03-28 11:29:14
某些时候,我们使用Java得POI工具内得XSSFSheet来创建excel表格,用于导出数据,但是下载到本地用excel打开得时候就会以下提示:
文件兼容错误提示
文件兼容错误提示
解决办法:
   @GetMapping("finance/exportExcel")
    @ResponseBody
    public ResultJson exportExcel(ReviewIExcelReq req, HttpServletResponse response) {
        try {
            byte[] file=financeReviewService.exportExcel(
              req.getTeamId(),
              req.getReviewStatus(),
              req.getUserName(),
              req.getClientName(),
              req.getPaymentTimeStart(),
                    req.getPaymentTimeEnd()
            );

            String  fileName = new String(("复核收款记录-"+DateUtil.formatDate(new Date(),"yyyyMMddhhmmss")+".xlsx").getBytes("gb2312"), "ISO8859-1");
            response.setCharacterEncoding("UTF-8");
            response.setContentType("multipart/form-data;charset=UTF-8");
            response.setHeader("Content-Disposition", "attachment;fileName=\"" + fileName + "\"");

            //解决Excel打开文件提示:xxx文件中部分内容有问题。是否让我们尽量尝试恢复
            ByteArrayInputStream tempIn = new ByteArrayInputStream(file);
            response.setHeader("Content-Length", String.valueOf(tempIn.available()));

            OutputStream os=response.getOutputStream();
            os.write(file);
            os.flush();

            return ResultJson.success("success");
        } catch (Exception e) {
            return ResultJson.fail(e.getMessage());
        }
    }
 
注意:以下代码为解决问题核心
            //解决Excel打开文件提示:xxx文件中部分内容有问题。是否让我们尽量尝试恢复
            ByteArrayInputStream tempIn = new ByteArrayInputStream(file);
            response.setHeader("Content-Length", String.valueOf(tempIn.available()));

 

标签: XSSFSheet
地址:https://www.leftso.com/article/750.html

相关阅读

某些时候,我们使用Java得POI工具内得XSSFSheet来创建excel表格,用于导出数据,但是下载到本地用excel打开得时候就会以下提示:​文件兼容错误提示解决办法: @GetMap...