EasyExcel模板导出

EasyExcel模板导出

1. 引入pom依赖

 		<dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>easyexcel</artifactId>
            <version>2.2.6</version>
            <exclusions>
                <exclusion>
                    <artifactId>poi</artifactId>
                    <groupId>org.apache.poi</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>poi-ooxml</artifactId>
                    <groupId>org.apache.poi</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>xmlbeans</artifactId>
                    <groupId>org.apache.xmlbeans</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>poi-ooxml-schemas</artifactId>
                    <groupId>org.apache.poi</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>4.1.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>4.1.0</version>
            <exclusions>
                <exclusion>
                    <artifactId>poi-ooxml-schemas</artifactId>
                    <groupId>org.apache.poi</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>cn.afterturn</groupId>
            <artifactId>easypoi-base</artifactId>
            <version>4.1.0</version>
        </dependency>
        <dependency>
            <groupId>cn.afterturn</groupId>
            <artifactId>easypoi-web</artifactId>
            <version>4.1.0</version>
        </dependency>
        <dependency>
            <groupId>cn.afterturn</groupId>
            <artifactId>easypoi-annotation</artifactId>
            <version>4.1.0</version>
        </dependency>

2. 把模板activity.xlsx放在在Resources目录下

在这里插入图片描述

3. 模板导出代码

ActivityInfo activityInfo = activityMapper.getActivityInfo(activityId);
response.setCharacterEncoding("utf-8");
response.setContentType("application/vnd.ms-excel;charset=utf-8");
response.setHeader("Content-Disposition", "attachment;fileName=" + URLEncoder.encode(activityInfo.getTopic()+"报名表单"+DateFormatUtil.formatDateToTimeStr(new Date())+".xls", StandardCharsets.UTF_8));
InputStream template = new PathMatchingResourcePatternResolver().getResource("classpath:activity.xlsx").getInputStream();
ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).withTemplate(template).build();
WriteSheet writeSheet = EasyExcel.writerSheet().build();
 
// 头部活动信息
Map<String,Object> activityInfoMap = new HashMap<>();
activityInfoMap.put("topic",activityInfo.getTopic());
activityInfoMap.put("address",activityInfo.getAddress());
activityInfoMap.put("time",activityInfo.getTime());
activityInfoMap.put("initiatorMenName",activityInfo.getInitiatorMenName());
activityInfoMap.put("phoneNumber",activityInfo.getPhoneNumber());
activityInfoMap.put("applyNum",activityInfo.getApplyNum());
activityInfoMap.put("signNum",activityInfo.getSignNum());
activityInfoMap.put("signRate",activityInfo.getSignRate());
activityInfoMap.put("wechatApplyNum",activityInfo.getWechatApplyNum());
activityInfoMap.put("sceneApplyNum",activityInfo.getSceneApplyNum());

// 报名人列表数据
List<Applicants> applicantsList = activityMapper.getApplicantList(activityId);
excelWriter.fill(applicantsList, writeSheet);
excelWriter.fill(activityInfoMap, writeSheet);
excelWriter.finish();

4. 前台代码

var url = vueConfig.deal + '://' + vueConfig.webIp + ':' + vueConfig.webPort
location.href = url + '/activity/exportActivityApplyExcel?activityId=' + activityId

5. 本地导出成功,linux导出报错create workbook failure

// 在Linux环境中安装中文语言包(后需要重启Linux上的后台)
yum groupinstall chinese-support
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值