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使用心得相关推荐

  1. 2021 12月CSP认证心得

    考前 差不多考前两个月开始准备,每个周都刷一些csp往年的题目,或者每个周都刷一些算法题,就这样一直到了最后一个周,害,每次考试前都会放纵一下自我,无论啥考试都不例外,最后一个周也松懈了一下下,不过还 ...

  2. Java学习日报—注解、Hash、Lombok—2021/12/02

    目录 1 相关注解 1.1 @Controller 和 @RestController 1.2 @ApiIgnore 1.3 @PostMapping 2 Java知识点 2.1 instanceof ...

  3. 《安富莱嵌入式周报》第246期:2021.12.27--2022.01.02

    往期周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - P ...

  4. 【跃迁之路】【658天】程序员高效学习方法论探索系列(实验阶段415-2018.12.02)...

    @(收集箱(每日一记,每周六整理))专栏 实验说明 从2017.10.6起,开启这个系列,目标只有一个:探索新的学习方法,实现跃迁式成长 实验期2年(2017.10.06 - 2019.10.06) ...

  5. HP LoadRunner 12.02 Tutorial T7177-88037教程独家中文版

    LoadRunner 12.02教程独家中文版 Tylan独家呕血翻译 转载请注明出自"天外归云"的博客园 Welcome to the LoadRunner Tutorial L ...

  6. LoadRunner 12.02 安装教程及中文语言包安装

    注意事项: 安装前,把所有的杀毒软件和防火墙关闭. 若以前安装过LoadRunner,则将其卸载. 安装路径不要带中文字符. LoadRunner 12已经不再支持xp系统,仅支持win7和win8系 ...

  7. http://www.blogjava.net/heyang/archive/2010/12/02/

    2019独角兽企业重金招聘Python工程师标准>>> http://www.blogjava.net/heyang/archive/2010/12/02/339589.html 使 ...

  8. 阿里IOT 应用托管部署 (2020/12/02)

    当前时间: 2020/12/02 阿里更新迭代比较快, 不能保证文档的参考价值有多大 --------------------------------------------------------- ...

  9. 【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 ...

  10. 《安富莱嵌入式周报》第245期:2021.12.20--2021.12.26

    往期周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - P ...

最新文章

  1. python采用解释方式执行_Python初学(一)
  2. windows目录内打开CMD的几种方法
  3. 矿大计算机专硕和学硕,本硕矿大,考研期间我收获了什么?
  4. script 有哪个属性可以让它不立即执行 defer,async
  5. 数据中心机房工程建设需要注意的重大问题
  6. 【cs231n作业笔记】一:KNN分类器
  7. Java 中 String 类的常规操作
  8. create-react-app 脚手架工具完善自己所需要的入口文件
  9. MVC系列-7.更新
  10. C语言课后习题(67)
  11. poj 1789 TruckHistory 最小生成树 Kruskal、Prim
  12. sqlilabs 5
  13. matplotlib color 参数
  14. MySQL的Limit详解
  15. 酱油瓶上有两个字很重要,一直都被忽略了,以后看准再买!
  16. 设计模式--工厂模式(简单总结)
  17. 杂题 P1640 [SCOI2010]连续攻击游戏
  18. python爬虫框架论文开题报告怎么写_论文开题报告撰写全攻略
  19. 2019icpc徐州站 H题 Yuuki and a problem(树套树(树状数组套主席树))
  20. 算法时间复杂度的计算:从几道题目讲起

热门文章

  1. 2022全国职业院校技能大赛-网络系统管理-Ruijie网络模块-真题解析 1
  2. iphone6/iphone6 plus真机图片 iphone6港版价格与预定发货时间
  3. 重定向和转发的区别?
  4. C++ int转换为string
  5. 跟着iMeta学作图 | 山峦图展示微生物丰度随盐度增加的动态变化
  6. [QML开发笔记]-QML绘制仪表盘
  7. 函授大专计算机应用和电子商务选哪个,函授大专该如何选择专业
  8. 转发:很好理解流形学习的文章-浅谈流形学习(Manifold Learning)
  9. AI 教父离职谷歌 ,只为畅谈 AI 之危
  10. C#编写Windows服务程序 (服务端),客户端使用 消息队列 实现淘宝 订单全链路效果