使用easy excel导出复杂表头的excel
使用easy-excel导出复杂表头的excel
今天想写一个双层表头的excel导出,一开始使用的是poi来画发现太麻烦,
于是就想到了使用easy-excel的模板填充来实现,将导出写成了一个简单的工具类,
供参考
最终是要实现为这样的一个效果 , 红色为表头,绿色为表体,于是我先做出了一个模板 ,
如果不会写模板的可以去看官方文档, 十分简单 https://www.yuque.com/easyexcel/doc/fill
然后将表头数据封装成一个map,表体数据为一个list , 去调用工具类就实现了
以下为工具类代码,导入了easy-excel就可以使用
package com.org.inventory.util;import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.support.ExcelTypeEnum;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.excel.write.metadata.fill.FillConfig;
import org.springframework.core.io.ClassPathResource;import javax.servlet.http.HttpServletResponse;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.IOException;
import java.io.OutputStream;
import java.util.List;
import java.util.Map;/*** Description: easy excel 工具类** @ProjectName: inventory_task* @ProduceName: IntelliJ IDEA* @author: li ji hong* @date: 2021/12/15 9:51*/
public class EasyExcelUtils {private static final String CONTENT_TYPE = "application/vnd.ms-excel";private static final String CHARACTER_ENCODING = "utf-8";private static final String HEADER_S1 = "Content-disposition";private static final String HEADER_S2 = "attachment; filename=";/*** 创建excel** 此方法为封装简单excel的导出 ,* 表头或者日期等信息写在map ,* list数据单独传可以实现简单导出** @param response 响应* @param fileName 文件名称* @param map map* @param list 列表* @throws IOException ioexception*/public static void createExcel(HttpServletResponse response, String fileName, Map<String, Object> map, List<?> list) throws IOException {// 设置公共头信息OutputStream out = null;BufferedOutputStream bos = null;response.setContentType(CONTENT_TYPE);response.setCharacterEncoding(CHARACTER_ENCODING);response.setHeader(HEADER_S1, HEADER_S2 + fileName);out = response.getOutputStream();bos = new BufferedOutputStream(out);// 此处可以修改 为 classpath:/fileClassPathResource cpr = new ClassPathResource("file" + File.separator + fileName);ExcelWriter excelWriter = com.alibaba.excel.EasyExcel.write(bos).withTemplate(cpr.getInputStream()).excelType(ExcelTypeEnum.XLS).build();WriteSheet writeSheet = com.alibaba.excel.EasyExcel.writerSheet().build();FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build();// 填充 list 数据excelWriter.fill(list, fillConfig, writeSheet);// 填充 map 数据excelWriter.fill(map, writeSheet);excelWriter.finish();bos.flush();bos.close();}
}
直接调用即可
补充一下依赖,因为有些人的项目可能会与poi产生冲突
<!--集成EasyExcel --><dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.2.6</version><exclusions><exclusion><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId></exclusion><exclusion><groupId>org.apache.poi</groupId><artifactId>poi</artifactId></exclusion><exclusion><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId></exclusion><exclusion><groupId>org.apache.poi</groupId><artifactId>poi-ooxml-schemas</artifactId></exclusion></exclusions></dependency>
使用easy excel导出复杂表头的excel相关推荐
- java excel导出复杂表头_java excel复杂表头和复杂数据导出
懒得写废话了... package com.ruoyi.common.utils.poi; import com.ruoyi.framework.config.RuoYiConfig; import ...
- excel导出多重表头utils_java excel复杂表头和复杂数据导出
懒得写废话了... package com.ruoyi.common.utils.poi; import com.ruoyi.framework.config.RuoYiConfig; import ...
- POI动态导出多层表头的EXCEL文件
POI动态导出多层表头的EXCEL文件 表格表头导出 单行表头 多行表头 以前接触过一个很古老的导出Excel,实现的逻辑是先声明一个导出的Excel模板,模板里报表的表头名称和顺序是固定的,这样执行 ...
- excel导出多重表头utils_Java中注解学习系列教程-4 使用自定义注解实现excel导出...
本文是<Java中注解学习系列教程>第四篇文章也是小案例文章. 自定义注解小案例是:使用自定义注解实现excel导出. Excel导出分析: 有表头.数据值.一般第一行是表头,从第二行 ...
- 导出多级表头的Excel表格
导出样式 代码 前端Vue handleAcceptExport() {this.$modal.confirm('是否确认导出有数据列表?').then(() => {this.exportLo ...
- EXCEL导出动态表头
一般在项目里需要导出数据时都是表头固定的,这样用EasyExcel导出时,只要先定义和POJO类,然后注释的方式定义好表头即可,如下: @Getter @Setter @EqualsAndHashCo ...
- 当前页面excel导出_系统地学习Excel第03课,Excel的工作界面
上一篇:02-Excel的基础知识 本篇内容结构如下: 本篇在章节中的位置 3. 工作界面 从 Excel 2007 版开始,Excel 的工作界面风格就一直延续至今,其中设置了一些便捷的工具栏和按钮 ...
- 移动端excel导出_前端实现Excel导入和导出功能
介绍 最近项目中让实现一个导入导出Excel的功能,查找了一些插件后发现js-xlsx这个插件,所以就尝试使用了一下,这里将使用方法和遇到的问题简单记录一下. SheetJS js-xlsx 是一款能 ...
- 使用poi进行excel导出复杂表头的设计
首先页面请求进行导出服务层进行处理: @ResponseBody @RequestMapping(value="/exportCollegeDetailExcel.action") ...
最新文章
- 阿里云服务器Svn-Server无法连接,阿里云服务器SVNServer配置
- Cowboy 源码分析(十八)
- Java8中的外观(JavaFX8)
- 黑苹果sd卡认不出来_天生一对:新入苹果M1笔记本,DOCKCASE拓展坞弥补缺憾
- ASP.NET MVC 入门7、Hellper与数据的提交与绑定
- mysql 数据操作 多表查询 子查询 带比较运算符的子查询
- iOS上传图片和视频(base64和file)
- Bean和Spirng模块
- MAC可以在.zshrc中修改PATH
- 随便一个人就能干预大选?
- 将整个网站页面变成黑白色
- Calling LoadLibraryEx on ISAPI filter failed
- Python.PyAutoGUI.利用手机模拟器破解Yousee密码
- [AV1] AV1 帧内预测
- 开始→运行→输入的命令集锦(欢迎补充)
- 利用urdf及RobCoGen生成运动学及动力学代码
- 怎样用计算机截图,如何在电脑中截图
- table表格打印断页时自动分页的实现方法
- java大作业用jsp数据库java_JSP数据库大作业 - 不是太阳也要发光的个人页面 - OSCHINA - 中文开源技术交流社区...
- Learning Entity and Relation Embeddings for Knowledge Graph Completion (TransR)论文翻译
热门文章
- 大学生会用计算机的重要性,聊聊大学生电脑的一些事情
- 在线教育_Day05-项目讲师管理模块前端开发
- web前端全栈0基础到精通(祺)vue 03
- 七层负载均衡HAproxy生产环境LVS+Keepalived+HAproxy(三)
- 最火爆ChatGPT知识星球分享,开启与GPT的神奇之旅
- Meipai–Capture the wonders美好瞬间用美拍补捉
- ffmpeg中关于EAGAIN的理解及非阻塞IO
- 【分治算法】求n个元素序列中第2大的元素
- 12 | 领域建模:如何用事件风暴构建领域模型
- nginx + tomcat 动静分离