使用easyexcel填充模板数据,并导出excel

文章目录

  • 前言
  • 一、制作模板
  • 二、前端代码
  • 三、后端代码
  • 总结


前言

导出excel功能非常场景,本片文章记录如何使用模板填充数据后再导出。因直接导出excel数据样式不符合要求,所以做了模板填充然后再导出excel。
效果如下:
在这里插入图片描述


一、制作模板

注意:列表数据变量名前面要写点{.id},如果单条数据可以不写。
在这里插入图片描述

二、前端代码

使用表单提交:

<% layout('/layouts/default.html', {title: '导出信用用户', libs: ['validate','fileupload']}){ %>
<style type="text/css">.delete {display: none;}
</style>
<div class="main-content"><div class="box box-main"><div class="box-header with-border"><div class="box-tools pull-right"><button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button></div></div><#form:form id="inputForm" model="${cshopUser}" action="${ctx}/shop/user/cshopUser/download" method="post" class="form-horizontal"><div class="box-body"><div class="row"><div class="col-xs-12"><div class="form-group"><label class="control-label col-sm-2"><span class="required">*</span>${text('请选择村庄')}</label><div class="col-sm-10"><#form:treeselect id="office" title="乡镇/村庄选择"path="office.officeCode" labelPath="office.officeName"url="${ctx}/sys/office/treeData"class="required" allowClear="true"/></div></div></div></div><div class="box-footer"><div class="row"><div class=" text-center"><button type="submit" class="btn btn-sm btn-primary" id="btnSubmit">${text('导出用户')}</button>&nbsp;<button type="button" class="btn btn-sm btn-default" id="btnCancel" onclick="js.closeCurrentTabPage()"><i class="fa fa-reply-all"></i> ${text('关 闭')}</button></div></div></div></#form:form></div>
</div>
<% } %>
<script>
$("#inputForm").validate({submitHandler: function(form){js.ajaxSubmitForm($('#inputForm'), {url:'${ctx}/shop/user/cshopUser/daochu',downloadFile:true});}
});
</script>

三、后端代码

实体代码:

@Data
public class BianGengExcel {@ExcelProperty(value = "ID")private String id;@ExcelProperty(value = "姓名")private String name;@ExcelProperty(value = "手机号")private String phone;}

controller代码:

/*** 导出用户** @param cshopUser* @return*/@PostMapping(value = "daochu")public String daochu(@Validated CshopUser cshopUser,HttpServletResponse response) {List <BianGengExcel> data = cshopUserService.daochu(cshopUser);try {OutputStream out = response.getOutputStream();//文件名需要这样写,不能在setHeader直接写中文名,否则下载的文件名字为空,只有后缀response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");response.setCharacterEncoding("utf-8");String fileName = URLEncoder.encode("用户-"+System.currentTimeMillis(), "UTF-8").replaceAll("\\+", "%20");response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");String templateFileName = this.getClass().getResource("/static/moban/daochu_moban.xls").getPath();ExcelWriter excelWriter = EasyExcelFactory.write(out,BianGengExcel.class).withTemplate(templateFileName).build();
//            ExcelWriter excelWriter = EasyExcel.write(out).withTemplate(templateFileName).build();WriteSheet writeSheet = EasyExcel.writerSheet().build();FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.FALSE).build();excelWriter.fill(data,fillConfig,writeSheet);excelWriter.finish();out.flush();out.close();} catch (IOException e) {e.printStackTrace();}return renderResult(Global.TRUE, text("导出用户成功!"));}

总结

只对jeesite感兴趣可以订阅jeesite专栏。更多实战经验,请关注实战专栏,实战专栏包含了所有jeesite专栏文章。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/509154.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

科普【1】:web3.0初探,不懂技术也能看懂。

Hi&#xff0c;我是贝格前端工场&#xff0c;本期来科普一下web3这个概念&#xff0c;力争讲的浅显易懂。 一、什么是web3及其特征 Web3是指第三代互联网&#xff0c;也被称为分布式互联网或区块链互联网。它是对传统互联网的一种进化和扩展&#xff0c;旨在提供更加去中心化、…

【归并排序】 详细解析 动图演示 逐图解析 洛谷P1177【模板】排序 sort【快速排序】

文章目录 归并排序1.归并排序的复杂度分析2.细节解释3.归并排序动图演示3(1) 我们的拆分过程如下↓ 4.code↓ 洛谷P1177【模板】排序数据规模与约定code&#xff08;归并排序&#xff09;↓code&#xff08;sort排序【快速排序】&#xff09; 完结撒花(&#xffe3;▽&#xff…

简析:老阳蓝海项目怎么做才能赚钱?

在互联网的浪潮中&#xff0c;新的商业模式和项目层出不穷&#xff0c;其中&#xff0c;老阳蓝海项目因其独特的市场定位和创新模式&#xff0c;吸引了许多人的关注。但是&#xff0c;如何在老阳蓝海项目中实现盈利&#xff0c;却是一个需要深入探讨的问题。 首先&#xff0c;要…

CorelDRAW2024中文免费版功能强大的矢量图形设计软件

CorelDRAW 2024是一款功能强大的矢量图形设计软件&#xff0c;广泛应用于广告制作、包装设计、插画设计、服装设计、网页设计等多个领域。以下是对其功能的详细介绍&#xff1a; 矢量图形设计&#xff1a;CorelDRAW 2024提供了全面的矢量图形设计功能&#xff0c;包括绘制基本…

hnust 湖南科技大学 2023 综合实训3(软件工程)课设 完整代码及数据库+报告+uml等图源文件+指导书

hnust 湖南科技大学 2023 综合实训3&#xff08;软件工程&#xff09;课设 完整代码及数据库报告uml等图源文件指导书 介绍 老师考核等级为优&#xff0c;系统多次测试&#xff0c;未发现bug 项目前后端分离&#xff0c;前端vue2工程项目&#xff0c;后端springboot&#xff…

10万㎡!天府新区又一重大成都直播产业园正在投用

天府新区&#xff0c;作为成都乃至整个四川省的新经济增长极&#xff0c;正以其独特的魅力和强大的发展势头吸引着世界的目光。今天&#xff0c;我们有幸在这里见证一个崭新的里程碑——10万㎡的成都直播产业园&#xff1a;天府锋巢直播产业基地 正式投入使用。这不仅是对天府新…

蜂窝物联:物联网大数据云平台功能模块简介

蜂窝云平台可远程获取现场环境&#xff08;如温室大棚、稻田&#xff09;的空气温湿度、土壤水分温度、二氧化碳浓度、光照强度及视频图像&#xff0c;通过数据模型分析&#xff0c;可以自动控制湿帘、风机、喷淋滴灌、内外遮阳、顶窗侧窗、加温补光、增氧机等设备&#xff1b;…

Python算法100例-3.1 回文数

完整源代码项目地址&#xff0c;关注博主私信源代码后可获取 1.问题描述2.问题分析3.算法设计4.确定程序框架5.完整的程序6.问题拓展7.巧用字符串技巧 1&#xff0e;问题描述 打印所有不超过n&#xff08;取n<256&#xff09;的其平方具有对称性质的数&#xff08;也称回…

H.266参考软件VTM各版本的性能差异

VTM&#xff08;VVC Test Model&#xff09;&#xff0c;是H.266视频编码标准的参考软件&#xff0c;即是VVC spec.的一种参考实现&#xff0c;代码里包括了H.266的软件编码器和软件解码器实现&#xff0c;代码地址如下&#xff1a; https://vcgit.hhi.fraunhofer.de/jvet/VVCS…

如何做代币分析:以 INJ 币为例

如何做代币分析&#xff1a;以 INJ 币为例 作者&#xff1a; lesleyfootprint.network 编译&#xff1a;cicifootprint.network 数据源&#xff1a;INJ 代币仪表板 &#xff08;仅包括以太坊数据&#xff09; 在加密货币和数字资产领域&#xff0c;代币分析起着至关重要的作…

tomcat nginx 动静分离

实验目的:当访问静态资源的时候&#xff0c;nginx自己处理 当访问动态资源的时候&#xff0c;转给tomcat处理 第一步 关闭防火墙 关闭防护 代理服务器操作&#xff1a; 用yum安装nginx 然后写配置文件&#xff0c;yum安装的nginx主配置文件默认为/etc/nginx/nginx.conf

程序员如何选择职业赛道?

一、自我评估与兴趣探索 程序员选择职业赛道时&#xff0c;可以考虑以下几个关键因素&#xff1a; 1、兴趣与热情&#xff1a;首先要考虑自己的兴趣和热情&#xff0c;选择符合个人喜好和激情的领域&#xff0c;能够激励自己持续学习和进步。 2、技术能力&am…