ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java word文档导出统计功能

2022-01-25 15:36:40  阅读:129  来源: 互联网

标签:goodsList java goods1 UnitStatistics 文档 context new report word


  1. 上代码
@GetMapping("/word")
    public void generateWord(HttpServletResponse response) throws IOException, XDocReportException, FileNotFoundException {
        //获取Word模板,模板存放路径在项目的resources目录下
        InputStream ins = this.getClass().getResourceAsStream("/templates/operatingStatistics.docx");
        //注册xdocreport实例并加载FreeMarker模板引擎
        IXDocReport report = XDocReportRegistry.getRegistry().loadReport(ins,
            TemplateEngineKind.Freemarker);
        //创建xdocreport上下文对象
        IContext context = report.createContext();

        //创建要替换的文本变量
        context.put("unitName", "恩施州保障中心");

        List<UnitStatistics> goodsList = new ArrayList<UnitStatistics>();
        UnitStatistics goods1 = new UnitStatistics();
        goods1.setInitiatorUnitCodeName("单位111");
        goods1.setDateCount(11);
        goods1.setMileages(675512L);
        goods1.setFrequency("589");
        UnitStatistics goods2 = new UnitStatistics();
        goods1.setInitiatorUnitCodeName("单位222");
        goods1.setDateCount(12);
        goods1.setMileages(675512L);
        goods1.setFrequency("9");
        UnitStatistics goods3 = new UnitStatistics();
        goods1.setInitiatorUnitCodeName("单位333");
        goods1.setDateCount(13);
        goods1.setMileages(76312L);
        goods1.setFrequency("12");
        UnitStatistics goods4 = new UnitStatistics();
        goods1.setInitiatorUnitCodeName("单位444");
        goods1.setDateCount(14);
        goods1.setMileages(679812L);
        goods1.setFrequency("36");
        goodsList.add(goods1);
        goodsList.add(goods2);
        goodsList.add(goods3);
        goodsList.add(goods4);
        context.put("goods", goodsList);

        //创建字段元数据
        FieldsMetadata fm = report.createFieldsMetadata();
        //Word模板中的表格数据对应的集合类型
        fm.load("goods", UnitStatistics.class, true);

        //输出到本地目录
//        FileOutputStream out = new FileOutputStream(new File("D://运行统计表demo.docx"));
//        report.process(context, out);
        response.setCharacterEncoding("utf-8");
        response.setContentType("application/msword");
        String fileName = "统计分析报表.docx";
        response.setHeader("Content-Disposition", "attachment;filename="
            .concat(String.valueOf(URLEncoder.encode(fileName, "UTF-8"))));
        report.process(context, response.getOutputStream());
    }
  1. 看模板
    在这里插入图片描述

标签:goodsList,java,goods1,UnitStatistics,文档,context,new,report,word
来源: https://blog.csdn.net/yft_android/article/details/122686070

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有