java使用easypoi导出动态列excel

本文介绍了如何使用easypoi库在Java中动态导出Excel报表,包括根据日期分组计算结算金额和笔数。文章详细阐述了引入Jar包、代码实现、模板创建及结果展示的步骤,适用于处理复杂Excel导出需求。

简介

asypoi功能如同名字easy,主打的功能就是让一个没见接触过poi的人员就可以方便的写出Excel导出,Excel模板导出,Excel导入,Word模板导出,通过简单的注解和模板语言(熟悉的表达式语法),完成以前复杂的写法。


一、场景描述

客户要求导出一张结算报表,报表的列头是选择结算的日期区间,也就是需要根据日期分组,然后计算这个日期下的结算金额和笔数,最后再计算合计。针对这个场景,我整理了下代码,如下:

二、使用步骤

1.引入Jar包

这是针对导出Excel的,如果是Word还需要自行拷贝其他包(示例):

       <dependency>
            <groupId>cn.afterturn</groupId>
            <artifactId>easypoi-base</artifactId>
            <version>4.2.0</version>
        </dependency>
        <dependency>
            <groupId>cn.afterturn</groupId>
            <artifactId>easypoi-web</artifactId>
            <version>4.2.0</version>
        </dependency>
        <dependency>
            <groupId>cn.afterturn</groupId>
            <artifactId>easypoi-annotation</artifactId>
            <version>4.2.0</version>
        </dependency>

2.代码实现

代码如下(示例):

    public void exportReport(Map<String, Object> params, HttpServletRequest request,
                                         HttpServletResponse response) {
   
   
        ModelMap modelMap = new ModelMap();
        Map<String, Object> dataMap = Maps.newHashMap();
		//模板存放路径,在你项目的Resource下随便建个文件夹,把模板放进去就好
        TemplateExportParams tempParams = new TemplateExportParams("TemplateFiles/test.xlsx");
        // 获取结算数据
        List<TestEntity> list = baseDao.getAllSummaryList(params);
        // 把数据转成excel数据
        List<TestExcel> dataList = ConvertUtils.sourceToTarget(list, TestExcel.class);
        //按照结算日期分组(获取动态列头)
        Map<Object, List<TestExcel>> listTwo = new HashMap<>();
        //根据商户分组(获取行)
        Map<Object, List<TestExcel>> listOne = dataList.stream().collect
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值