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是阿里巴巴开源的一个框架 ...
随机推荐
- php第一次实验个人博客网站的设计编写①
先上效果图: 网页代码:index.html <!DOCTYPE html> <html lang="en"> <head> <m ...
- js 修改页面样式的两种方式
1. element.style 行内样式操作 代码示例 : <!DOCTYPE html> <html lang="en"> <hea ...
- 在IDEA中已经配置postgis数据库驱动并且能在Java类中连接数据库,但在servlet中无法连接数据库且导致Tomcat自动断开连接的解决方案
最近在IDEA中用JDBC连接PostgreSQL数据库时遇到了这样一个奇怪的事情: 从PostgreSQL JDBC Driver官网下载好JDBC驱动之后,在IDEA的Project Struct ...
- 02. 树莓派初始配置——安装rz命令
安装rz命令 如果你的ssh工具不带xftp文件上传功能,则需要安装使用ZMODEM协议的rz.sz命令. 1. 用root权限登录 2. 创建下载的目录地址(不创建也行,创建后方便以后文件管理) m ...
- 程序员延寿指南「GitHub 热点速览 v.22.17」
很多人对程序员的固有印象之一便是常加班.易"猝死"!近几年的许多报道似乎也进一步加深了这种印象.应该如何更好地健康地活着.敲喜欢的代码呢?HowToLiveLonger 教你如何从 ...
- Nacos在企业生产中如何使用集群环境?
点赞再看,养成习惯,微信搜索[牧小农]关注我获取更多资讯,风里雨里,小农等你,很高兴能够成为你的朋友. 项目源码地址:公众号回复 nacos,即可免费获取源码 前言 由于在公司,注册中心和配置中心都是 ...
- [笔记] 后缀自动机 (SAM)
实现 void ins(int c){ int np = ++dcnt, p = lst; lst = np; t[np].len = t[p].len + 1, t[np].eps = 1; whi ...
- Vulnhub-Tomato靶机实战
前言 靶机下载地址:https://www.vulnhub.com/entry/tomato-1,557/ KALI地址:192.168.94.108 靶机地址:192.168.94.30 一.信息收 ...
- 3.Docker常用命令
帮助启动类命令 启动docker: systemctl start docker 停止docker: systemctl stop docker 重启docker: systemctl restart ...
- PHP_SESSION学习小结
PHP Session PHP session 变量用于存储关于用户会话(session)的信息,或者更改用户会话(session)的设置.Session 变量存储单一用户的信息,并且对于应用程序中的 ...