2021-12-02-easyExcle使用心得
easyExcle使用心得
- 引入meaven包
- 使用bean类
- 将数据写入excle表格
- 如何对输出的excle表格进行格式的设置。
- 设置字体的颜色
- 单独设置当前列的列宽
- 隐藏字段
- 设置列所在的位置
引入meaven包
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi --><dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.2.7</version></dependency><!--还需要引入poi--><dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.17</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>3.17</version></dependency>
使用bean类
根据自己的需求创建对应的bean,这一类可以是根据数据库中的字段来定义。
我这里就用我数据库里面的一个表来做展示
数据库中的表
表中的数据
代码中的bean
package com.text;import com.alibaba.excel.annotation.ExcelProperty;
import com.definesys.mpaas.query.annotation.Column;
import com.definesys.mpaas.query.annotation.Table;/*** @copyright: Shanghai Definesys Company.All rights reserved.* @description:* @author: 小黑* @since: 2021/11/19 9:50* @history: 1.2021/11/19 created by xiaohei*/
@Table(value = "student")
public class Student {@Column(value = "id")@ExcelProperty("学生编号")private String id;@Column(value = "name")@ExcelProperty("学生姓名")private String name;public String getId() {return id;}public void setId(String id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}@Overridepublic String toString() {return "Student{" +"id='" + id + '\'' +", name='" + name + '\'' +'}';}
}
将数据写入excle表格
这边的代码的目的就是把这些从数据库中获取到的数据,打包成对象然后插入到excle表格中。
Controller层
@RequestMapping(value = "/easyExcleTest",method = RequestMethod.POST)public Response easyExcleTest(){return Response.ok().data(autoCheckService.easyExcleTest());}
Service层
public String easyExcleTest() {return autoCheckDao.easyExcleTest();}
Dao层
public String easyExcleTest() {//先获取所有的数据List<Student> students = sw.buildQuery().doQuery(Student.class);//新建一个listList<String> fileNames = new ArrayList<String>();//用时间来区分文件信息,保证文件不会重复Date date = new Date();SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");//给文件取名String fileName = "D:\\a\\文件"+format.format(date)+".xls";//输出一次文件名System.out.println(fileName);//创建excle写入对象ExcelWriter excelWriter = null;//设置写入对象的名称为fileNameexcelWriter = EasyExcel.write(fileName).build();//设置sheet的名称WriteSheet writeSheet = EasyExcel.writerSheet("sheet1").head(Student.class).build();//将我们上面获取到的students对象写入到sheet中。excelWriter.write(students,writeSheet);//将文件名称加入到fileNames列表中fileNames.add(fileName);//关闭写入流,一定要关,不能忘excelWriter.finish();//返回fileNames给接口调用。return String.valueOf(fileNames);}
使用上面的代码来进行接口调用测试
最后得到的数据表格的形式就是这样的:
如何对输出的excle表格进行格式的设置。
//设置头背景为蓝色
@HeadStyle(fillPatternType = FillPatternType.SOLID_FOREGROUND,fillForegroundColor = 152)
//设置头字体为16
@HeadFontStyle(fontHeightInPoints = 16)
//设置内容背景的颜色为浅蓝色
@ContentStyle(fillPatternType = FillPatternType.SOLID_FOREGROUND,fillForegroundColor = 155,horizontalAlignment= HorizontalAlignment.CENTER,borderBottom = BorderStyle.THIN,borderRight = BorderStyle.THIN)
//设置内容字体为10
@ContentFontStyle(fontHeightInPoints = 10)
//设置内容的高
@ContentRowHeight(30)
//设置头的高
@HeadRowHeight(40)
设置字体的颜色
这里就举例子成红色了哦
@Column(value = "id")@ExcelProperty("学生编号")@HeadFontStyle(fontHeightInPoints = 16,color = 5)//黄色的列表头@ContentFontStyle(fontHeightInPoints = 10,color = 2)//红色的内容private String id;@Column(value = "name")@ExcelProperty("学生姓名")@HeadFontStyle(fontHeightInPoints = 16,color = 6)//粉色的列表头@ContentFontStyle(fontHeightInPoints = 10,color = 3)//绿色的内容private String name;
可以看到,这些都是可以单独进行设置颜色和格式的。
单独设置当前列的列宽
对于某一列的宽度进行设置,可以直接在对应的bean中的属性上面添加注解
@ColumnWidth(20)//设置列宽为20
隐藏字段
只需要在想要隐藏的字段上面添加这一条注解即可
@ExcelIgnore//隐藏字段
设置列所在的位置
字段对应的列的位置可以通过设置注解的属性来进行设置
@ExcelProperty(value = "应用/接口名",index = 1)
通过这个注解可以显示字段,也可以设置字段显示在excle表格中的名称
具体的详细的使用请参考官方文档
EasyExcle使用的官方文档.
2021-12-02-easyExcle使用心得相关推荐
- 2021 12月CSP认证心得
考前 差不多考前两个月开始准备,每个周都刷一些csp往年的题目,或者每个周都刷一些算法题,就这样一直到了最后一个周,害,每次考试前都会放纵一下自我,无论啥考试都不例外,最后一个周也松懈了一下下,不过还 ...
- Java学习日报—注解、Hash、Lombok—2021/12/02
目录 1 相关注解 1.1 @Controller 和 @RestController 1.2 @ApiIgnore 1.3 @PostMapping 2 Java知识点 2.1 instanceof ...
- 《安富莱嵌入式周报》第246期:2021.12.27--2022.01.02
往期周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - P ...
- 【跃迁之路】【658天】程序员高效学习方法论探索系列(实验阶段415-2018.12.02)...
@(收集箱(每日一记,每周六整理))专栏 实验说明 从2017.10.6起,开启这个系列,目标只有一个:探索新的学习方法,实现跃迁式成长 实验期2年(2017.10.06 - 2019.10.06) ...
- HP LoadRunner 12.02 Tutorial T7177-88037教程独家中文版
LoadRunner 12.02教程独家中文版 Tylan独家呕血翻译 转载请注明出自"天外归云"的博客园 Welcome to the LoadRunner Tutorial L ...
- LoadRunner 12.02 安装教程及中文语言包安装
注意事项: 安装前,把所有的杀毒软件和防火墙关闭. 若以前安装过LoadRunner,则将其卸载. 安装路径不要带中文字符. LoadRunner 12已经不再支持xp系统,仅支持win7和win8系 ...
- http://www.blogjava.net/heyang/archive/2010/12/02/
2019独角兽企业重金招聘Python工程师标准>>> http://www.blogjava.net/heyang/archive/2010/12/02/339589.html 使 ...
- 阿里IOT 应用托管部署 (2020/12/02)
当前时间: 2020/12/02 阿里更新迭代比较快, 不能保证文档的参考价值有多大 --------------------------------------------------------- ...
- 【hive】hive如何将Jan 1, 2021 12:40:46 PM时间格式转换为指定格式
在开发过程中,遇到类似于Jan 1, 2021 12:40:46 PM,Jan 1, 2021 9:40:46 AM,需要转换为yyyy-MM-dd HH:mm:ss格式,特记录下. 思路: 先通过u ...
- 《安富莱嵌入式周报》第245期:2021.12.20--2021.12.26
往期周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - P ...
最新文章
- python采用解释方式执行_Python初学(一)
- windows目录内打开CMD的几种方法
- 矿大计算机专硕和学硕,本硕矿大,考研期间我收获了什么?
- script 有哪个属性可以让它不立即执行 defer,async
- 数据中心机房工程建设需要注意的重大问题
- 【cs231n作业笔记】一:KNN分类器
- Java 中 String 类的常规操作
- create-react-app 脚手架工具完善自己所需要的入口文件
- MVC系列-7.更新
- C语言课后习题(67)
- poj 1789 TruckHistory 最小生成树 Kruskal、Prim
- sqlilabs 5
- matplotlib color 参数
- MySQL的Limit详解
- 酱油瓶上有两个字很重要,一直都被忽略了,以后看准再买!
- 设计模式--工厂模式(简单总结)
- 杂题 P1640 [SCOI2010]连续攻击游戏
- python爬虫框架论文开题报告怎么写_论文开题报告撰写全攻略
- 2019icpc徐州站 H题 Yuuki and a problem(树套树(树状数组套主席树))
- 算法时间复杂度的计算:从几道题目讲起
热门文章
- 2022全国职业院校技能大赛-网络系统管理-Ruijie网络模块-真题解析 1
- iphone6/iphone6 plus真机图片 iphone6港版价格与预定发货时间
- 重定向和转发的区别?
- C++ int转换为string
- 跟着iMeta学作图 | 山峦图展示微生物丰度随盐度增加的动态变化
- [QML开发笔记]-QML绘制仪表盘
- 函授大专计算机应用和电子商务选哪个,函授大专该如何选择专业
- 转发:很好理解流形学习的文章-浅谈流形学习(Manifold Learning)
- AI 教父离职谷歌 ,只为畅谈 AI 之危
- C#编写Windows服务程序 (服务端),客户端使用 消息队列 实现淘宝 订单全链路效果