记一次Excel模板导出功能

前言

这篇文章是要记载在开发过程中实现:使用自己定义的excel模板文件,将list数据填入模板文件中。

说明

这里只记录了一些功能要点和使用时要注意的地方!!!

详细

  1. 引入依赖
    这里使用的是easypoi来实现这个功能,先引入依赖包,版本是4.1.2
<dependency>
    <groupId>cn.afterturn</groupId>
    <artifactId>easypoi-spring-boot-starter</artifactId>
    <version>4.1.2</version>
</dependency>
  1. 编写服务类的方法逻辑
/**
 * @param dataList---需要导出的数据集合
 * @param  file---模板文件
*/
public Workbook exportExcel(List<EntityVO> dataList, InputStream file){
        Workbook workbooks = null;
        try {
                //将模板文件转成Workbook
                Workbook workbook = new HSSFWorkbook(file);
                //创建模板输出参数
                TemplateExportParams params = new TemplateExportParams();
                params.setTemplateWb(workbook);
                //创建实际值的集合
                Map<String, Object> dataMap = new HashMap<>();
                //输出列表集合
                List<Map<String, Object>> listMap = new ArrayList<>();
                for (EntityVO : dataList) {
                    Map<String, Object> lm = new HashMap<>();
                    lm.put("index", vo.getIndex());
                    lm.put("year", vo.getYear());
                    lm.put("month", vo.getMonth());
                    lm.put("xingming", vo.getXingming());
                    lm.put("remarks", vo.getRemarks());
                    listMap.add(lm);
                }
                dataMap.put("maplist", listMap);
                workbooks = ExcelExportUtil.exportExcel(params, dataMap);
            }
        }catch (Exception e){
            log.error(e.getMessage());
        }
        return workbooks;
    }

这个方法需要传入两个参数:

  • 要导出的数据列表dataList
  • 模板文件file

返回的数据是已经把导出数据填充到模板文件的Workbook。之所以方法的返回数据形式是Workbook,是因为我这里开发逻辑就到这了。

如果要把其处理好的文件导出来:

  1. 可以用写入到磁盘某个位置
FileOutputStream fos = new FileOutputStream("D:/ceshi.xls");
workbook.write(fos);
  1. 也可以返回到前端以供下载使用
ServletOutputStream outputStream = response.getOutputStream();
workbook.write(outputStream);

还有模板的创建,根据实际导出的内容创建模板里面的定位格。如图所示:
在这里插入图片描述
目前就想到记录这些了,如果缺了哪些内容,告诉哈猿进行补充。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是哈猿啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值