EasyExcel使用
将下面三层结合起来,请放心食用。
一、controller层
@RestController
public class EasyExcelController
{
private Logger logger = LogManager.getLogger(EasyExcelController.class); @RequestMapping(value = "/Download")
public void testExcelDownload(HttpServletResponse response)
{
//实际项目中,personList可以从数据库查出或者前端传过来
//在这里用于测试
List<Person> personList = new ArrayList<>();
for (int i = 1; i < 5; i++)
{
Person person = new Person();
person.setId(i);
person.setName(i + "号杰瑞");
person.setAge(i);
person.setAddress(i + "号石华街");
person.setDate(new Date());
personList.add(person);
}
try
{
String fileName = "数据"; // Excel文件名称
String sheetName = "欢乐番茄"; // 工作簿名称
EasyExcelUtil.writeExcel(response, personList, fileName, sheetName, Person.class);
}
catch (Exception e)
{
logger.error("模板下载失败", e);
} } }
二、工具类
public class EasyExcelUtil
{ public static OutputStream getOutputStream(String fileName, HttpServletResponse response)
throws Exception
{
try
{
fileName = URLEncoder.encode(fileName, "utf-8");
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("utf-8");
// 此处指定了文件类型为xls,如果是xlsx的,请自行替换修改
response.setHeader("Content-Disposition", "attachment; filename=" + fileName + ".xls");
response.setHeader("Pragma", "public");
response.setHeader("Cache-Control", "no-store");
response.addHeader("Cache-Control", "max-age=0");
return response.getOutputStream();
}
catch (IOException e)
{
throw new Exception("导出文件失败!");
}
} public static void writeExcel(HttpServletResponse response, List list, String fileName,
String sheetName, Class clazz)
throws Exception
{
ExcelWriter writer = new ExcelWriter(getOutputStream(fileName, response), ExcelTypeEnum.XLS); Sheet sheet = new Sheet(1, 0, clazz);
sheet.setSheetName(sheetName);
writer.write(list, sheet);
writer.finish();
}
}
三、实体类
@Data
//自定义标题行高
@HeadRowHeight(30)
//自定义标题字体大小 默认14
@HeadFontStyle(fontHeightInPoints = 15)
//自定义文本内容行高
@ContentRowHeight(20)
//自定义文本字体大小 默认14
@ContentFontStyle(fontHeightInPoints = 10)
public class Person
{ //忽略这个字段
@ExcelIgnore
private Integer id; @ExcelProperty({"数据统计", "姓名"})
private String name; @ExcelProperty({"数据统计", "年龄"})
private Integer age; @ExcelProperty({"数据统计", "家庭地址"})
@ColumnWidth(15)
private String address; //默认 yyyy-MM-dd HH:mm:ss 可以使用DateTimeFormat自定义日期格式
@DateTimeFormat("yyyy年MM月dd日")
//自定义列宽
@ColumnWidth(15)
@ExcelProperty("日期")
private Date date; public Date getDate()
{
return date;
} public void setDate(Date date)
{
this.date = date;
} public Integer getId()
{
return id;
} public void setId(Integer id)
{
this.id = id;
} public String getName()
{
return name;
} public void setName(String name)
{
this.name = name;
} public Integer getAge()
{
return age;
} public void setAge(Integer age)
{
this.age = age;
} public String getAddress()
{
return address;
} public void setAddress(String address)
{
this.address = address;
} @Override
public String toString()
{
return "Person{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
", address='" + address + '\'' +
", date=" + date +
'}';
}
}
POM依赖
<!--ali-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.2.7</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
</dependency>
EasyExcel使用的更多相关文章
- 阿里巴巴excel工具easyexcel 助你快速简单避免OOM
Java解析.生成Excel比较有名的框架有Apache poi.jxl.但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题,但POI还是有 ...
- easyExcel导出excel的简单使用
easyExcel导出excel的简单使用 Java解析.生成Excel比较有名的框架有Apache poi.jxl.但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定 ...
- 阿里 EasyExcel 使用及避坑
github地址:https://github.com/alibaba/easyexcel 原本在项目中使用EasyPoi读取excel,后来为了统一技术方案,改用阿里的EasyExcel.EasyE ...
- EasyExcel导入工具(SpringMVC下使用)
easyExcel:由阿里巴巴公司开发,由github托管 github上有详细使用文档 github地址:https://github.com/alibaba/easyexcel/blob/mast ...
- 阿里 EasyExcel 7 行代码优雅地实现 Excel 文件生成&下载功能
欢迎关注个人微信公众号: 小哈学Java, 文末分享阿里 P8 资深架构师吐血总结的 <Java 核心知识整理&面试.pdf>资源链接!! 个人网站: https://www.ex ...
- Excel解析easyexcel工具类
Excel解析easyexcel工具类 easyexcel解决POI解析Excel出现OOM <!-- https://mvnrepository.com/artifact/com.alibab ...
- easyexcel 读写测试
<dependencies> <dependency> <groupId>com.alibaba</groupId> <artifactId> ...
- EasyExcel 轻松灵活读取Excel内容
写在前面 Java 后端程序员应该会遇到读取 Excel 信息到 DB 等相关需求,脑海中可能突然间想起 Apache POI 这个技术解决方案,但是当 Excel 的数据量非常大的时候,你也许发现, ...
- 【软件工具】easyExcel简明使用指南
easyExcel简介 Java领域解析.生成Excel比较有名的框架有Apache poi.jxl等.但他们都存在一个严重的问题就是非常的耗内存.如果你的系统并发量不发的话可能还行,但是一旦并发上来 ...
- Excel映射到实体-easyexcel工具
来源 项目需要把Excel进行解析,并映射到对象属性,实现类似Mybatis的ORM的效果.使用的方式是自定义注解+POI,这种方式代码复杂而且不易于维护. easyexcel是阿里巴巴开源的一个框架 ...
随机推荐
- MySQL基础入门(1)
MySQL基础入门(1) 为什么学习MySQL 关系数据库管理系统(Relational Database Management System, RDBMS)是一种极为重要的工具,其应用十分广泛,从商 ...
- Bugku练习题---MISC---1和0的故事
Bugku练习题---MISC---1和0的故事 flag:flag{QR_c0de_1s_1nterest1n9} 解题步骤: 1.观察题目,下载附件 2.不得不说这道题挺贵的,打开是这个样子的,由 ...
- 基础学习:MYSQL命令大全(持续更新中---最近一次:2019.12.6)
启动mysql : mysql -hlocalhost -uroot -p创建数据库:create database 数据库名字;指定要操作的数据库:use 数===据库名字;查看数据表建表语句:sh ...
- 关于background-*的一些属性
1.盒模型 盒模型从外到内一次为:margin-box.border-box.padding-box.content-box. 2.一些属性设置的相对位置 ⑴background-position的属 ...
- ajax 请求登录超时跳转登录页解决方法
在Filter里判断是否登录,如果未登录返回401状态 public class SelfOnlyAttribute : ActionFilterAttribute { public override ...
- 一起看 I/O | Flutter 3 正式发布!
作者 / Tim Sneath, Google Flutter 和 Dart 产品组产品经理 Flutter 3 实现了 Flutter 以移动端为中心扩展到多平台的产品规划,并在今年 I/O 大会的 ...
- 【单片机】NB-IoT移远BC28调试笔记
一.入网总体思路 入网思路是参考 <Quectel_BC95&BC35-G&BC28_应用设计指导_V1.1.pdf>来做的.流程如图所示: 二.具体调试细节3.1 AT+ ...
- Html name与id属性的区别
id----id属性规定为 HTML 元素的唯一的标识.当使用html,CSS时,id属性可用作链接锚(link anchor),通过 JavaScript(HTML DOM)getElementBy ...
- [补漏]shift&算法
题意:regular number 给你一个字符串,要你输出所有(每位都符合要求的)子串,输入时告诉你每位只能填的数集. 思路: bitsetc[x]存每个数字可以存在的字符串位的二进制集合.(如3可 ...
- [BZOJ5449] 序列
题目链接:序列 Description 给定一个\(1\)~\(n\)的排列x,每次你可以将 \(x_1, x_2, ..., x_i\) 翻转. 你需要求出将序列变为升序的最小操作次数. 多组数据. ...