原文出自:公众号 冰河技术 原文链接:https://mp.weixin.qq.com/s/nNKh4lQOZGRylGhxi7uC4g
不管是传统软件企业还是互联网企业,不管是管理软件还是面向C端的互联网应用 。都不可避免的会涉及到报表操作,而对于报表业务来说,一个很重要的功能就是将数据导出到Excel 。
如果我们在业务代码中,嵌入很多导出Excel的逻辑,那我们的代码就会变得异常臃肿,不利于维护,而且导出Excel的核心逻辑基本相同 。那我们能否将导出Excel的核心逻辑封装成一个工具,当我们需要导出Excel时,只是向工具简单的传入数据呢?于是乎,mykit-excel诞生了!
mykit-excel的github链接地址为: https://github.com/sunshinelyz/mykit-excel
欢迎各位小伙伴Star和Fork源码,也欢迎大家pr你牛逼哄哄的代码,我们一起来养肥它!
如果文章对你有点帮助,小伙伴们点赞、收藏、评论和分享,走起呀~~
框架简述
mykit-excel插件是通用的Excel导入导出框架,旨在提供通用的Excel导入导出功能,支持以注解方式选择JAVABean中的部分字段导出,并提供注解指定Excel列标题和排序功能 。
框架结构
- mykit-excel-annotation: mykit-excel框架的注解模块,提供注解标识类中的哪些字段需要导出到Excel
- mykit-excel-common: mykit-excel框架的通用工具类,提供通用的工具模板
- mykit-excel-servlet: mykit-excel框架提供的Web模块,能够支持Web请求导出Excel
- mykit-excel-springmvc: mykit-excel框架提供的SpringMVC模块,能够支持Web请求导出Excel
- mykit-excel-test: mykit-excel框架提供的常规测试模块
- mykit-excel-springboot: mykit-excel框架提供的SpringBoot测试模块
(1)测试常规导出Excel工具类的Java类为:io.mykit.excel.springboot.normal.export.TestExportExcelUtils,直接运行该类即可 。
(2)测试注解导出Excel工具类的Java类为:io.mykit.excel.springboot.annotation.export.TestAnnotationExportExcelUtils,直接运行该类即可 。
(3)测试SpringMVC导出Excel的Java类为io.mykit.excel.springboot.normal.springmvc.NormalExportExcelContorller,运行SpringBoot的启动类io.mykit.excel.springboot.MykitExcelCoreApplication之后,使用resources/html目录下的normalExportExcel.html文件导出Excel即可 。如果设置的IP和端口与mykit-excel-springboot模块不同,则修改normalExportExcel.html文件中的IP和端口即可 。
(4)测试基于注解导出Java类为io.mykit.excel.springboot.annotation.springmvc.AnnotationExportExcelController,运行SpringBoot的启动类io.mykit.excel.springboot.MykitExcelCoreApplication 之后,使用resources/html目录下的annotationExportExcel.html文件导出Excel即可 。如果设置的IP和端口与mykit-excel-springboot模块不同,则修改annotationExportExcel.html文件中的IP和端口即可 。
注解说明
如果使用注解方式导出Excel,则需要在JavaBean的属性字段上添加@ExcelColumn注解,此注解中有三个属性,分别如下:
- isExport:表示是否将当前字段导出到Excel,true:是;false:否
- title:导出到Excel时的当前列的标题;
- sort:当前字段导出到Excel的列时,在Excel中的位置,值越小,当前列越靠前 。
如果是普通的Java项目,只是将Excel文件导出到本地磁盘,则只需要在项目的pom.xml文件中增加如下配置
io.mykit.excel mykit-excel-common 1.0.0-SNAPSHOT创建测试JavaBean
@Datapublic class Student implements Serializable { private static final long serialVersionUID = -2987207599880734028L; private int id; private String name; private String sex; public Student(){ } public Student(int id, String name, String sex){ this.id = id; this.name = name; this.sex = sex; }}接下来,在程序中按照如下方式导出Excel文件即可
public static void main(String[] args) throws Exception{ ExportExcelUtils utils = new ExportExcelUtils(); List list = new ArrayList(); for (int i = 0; i < 10; i++) { list.add(new Student(111,"张三","男")); list.add(new Student(111,"李四","男")); list.add(new Student(111,"王五","女")); } String[] columnNames = { "ID", "姓名", "性别" }; utils.exportExcel("用户导出", columnNames, list, new FileOutputStream("E:/test.xls"), ExportExcelUtils.EXCEL_FILE_2003);}导出的文件如下所示
推荐阅读
- 白茶喝了对人有什么好处,喝稀有白茶有什么好处
- Loki日志系统,比ELK轻量多了
- 无糖咖啡能减肥吗
- 为什么说项羽在杀义帝时就怀疑范增了?项羽要是听范增的会打赢刘邦吗
- 三国演义诸葛亮干了什么事?被《三国演义》神话的诸葛亮
- 东汉自然灾害多于西汉?东汉末年曹操为了解决军粮问题
- 甲状腺结节2副中药好了,甲状腺结节能吃大白菜吗
- 年利率怎么算?
- 六大茶类基本常识
- 为什么说先秦诸子百家的思想奠定了中华文化的基础?儒家在诸子百家争鸣中获胜的内在原因
