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

编程教程 > Java (8639) 2024-11-26 14:39:04

某些时候,我们使用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()));

 


评论
User Image
提示:请评论与当前内容相关的回复,广告、推广或无关内容将被删除。

相关文章
某些时候,我们使用Java得POI工具内得XSSFSheet来创建excel表格,用于导出数据,但是下载到本地用excel打开得时候就会以下提示:​文件兼容错误提示解决办法: @GetMap...
创建maven项目添加依赖方便开发,添加一些开发工具依赖,比如 lombok Swing UI开发创建Hello UI在src/main/java/包名下有件菜
BorderLayout 边框布局管理器BorderLayout(边框布局管理器)是 Window、JFrame 和 JDialog 的默认布局管理器。边框布局
在Swing中,任何其他组件都必须位于一个顶层容器中。JFrame 窗口和 JPanel 面板是常用的顶层容器,本节详细介绍这两个容器的使用方法。JFrame
1.使用idea创建JavaFX项目idea创建JavaFX项目创建后运行尝试:运行结果 可以看到目前是能正常运行 Hello Word项目的,这个时候还没有maven支持
问题描述JavaFX maven项目在idea中启动报错:Exception in thread "WindowsNativeRunloopThread" java.lang.NoSuchMet...
问题描述idea启动maven的JavaFX项目报错:Exception in Application start method java.lang.reflect.InvocationTarg...
最近在学习JavaFX,发现资料很少,连基本的图片读取都很多错误版本
问题描述最近写JavaFX程序遇到了下面的错误:Exception in thread "pool-2-thread-1" java.lang.IllegalStateException: No...
thymeleaf 设置不校验html标签
SSH/SSM项目中如何集成thymeleaf?本文将讲解SSH/SSM项目中如何集成thymeleaf模板引擎
Thymeleaf 递归,Thymeleaf模板引擎递归展示如评论留言等场合适用
springboot 使用thymeleaf 模板引擎中url中的&引起的org.xml.sax.SAXParseException: 对实体 "uid" 的引用必须以 ';' 分隔符结尾。问题解决
配置在resources目录下面创建i18n目录,然后创建几个文件messages.properties 默认显示语言内容messages_en_US.prop