简介
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

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

被折叠的 条评论
为什么被折叠?



