Excel神办公—【一】使用EasyExce实现数据“有对象写入”和“无对象写入”
2021/11/25 23:11:50
本文主要是介绍Excel神办公—【一】使用EasyExce实现数据“有对象写入”和“无对象写入”,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
写在前面
最近在做项目开发的时候,有用到easy excel技术来解析和写入excel,所以今天在这里和大家分享一下如何使用easy excel技术来解析excel文件的操作
Easyexcel技术介绍
Easyexcel技术是在poi的基础上发展起来的,它是对poi’的优化和提升,相对于poi来说,Easyexcel的好处就是在对文件读写的时候,是一行一行的读取的,这样做的好处就是在数据存储到数据库的时候,可以很好的避免内存消耗,占用较多的CPU资源。而且相对于poi,easyexcel的操作更加便捷,同样的操作,easyexcel的代码量更少。
Easyexcel实现简单写入操作
使用easyexcel实现写入操作的方式有很多种,其中最常用的是有对象写入和无对象写入,接下来我会把这两种方式分别和大家进行介绍。
有对象写入
在easyexcel中有对象写入的意思就是需要指定写入的数据是何种类型的数据,这种写入方式也是比较简单的,我们以下面的一个实例来演示一下。
首先建立一个实例对象DemoData类,如下:
/** * 基本数据demodata * */ @Data public class DemoData { @ExcelProperty(value = "字符串标题") private String stringTitle; @ExcelProperty(value = "时间标题") private Date dateTitle; @ExcelProperty(value = "数字标题") private int doubleTitle; }
在该类中有三个属性,我们把它们作为我们的表头,在easyexcel中可以使用@ExcelProperty()注解来指定该属性在写入到Excel后表头的内容,
之后关于写入数据到Excel,我们可以直接调用Easyexcel的Write()方法,具体的使用如下:
public void writeDataToExcel_01() { log.info("将数据写入到excel,普通写法"); /** * 获取到写入的数据 */ log.info("即将开始写入【" + demoData.size() + "】条数据"); EasyExcel.write(FILEPATH + "testExcel_1.xlsx", DemoData.class).sheet("testSheet01").doWrite(demoData); log.info("【" + demoData.size() + "】条数据写入成功!"); }
其中需要在write()中指定写入的文件路径和数据类型,之后通过setSheet()方法来指定要写入的sheet的名称,最后在dowrite()中传入要写入的数据的list集合即可,得到的效果如下:
无对象写入
无对象写入其实更简单,我们不需要指定要写入的数据的类型,可以直接传入一个存放数据的list,即可完成数据的写入操作。但是无论是表头还是内容,都需要以list的形式传入,
实例如下:
/** * 不创建对象的写 */ @Test public void noModelWrite() { // 写法1 String fileName = "testExcel_1.xlsx"; // 这里 需要指定写用哪个class去写,然后写到第一个sheet,名字为模板 然后文件流会自动关闭 EasyExcel.write(fileName).head(head()).sheet("模板").doWrite(dataList()); } private List<List<String>> head() { List<List<String>> list = ListUtils.newArrayList(); List<String> head0 = ListUtils.newArrayList(); head0.add("字符串" + System.currentTimeMillis()); List<String> head1 = ListUtils.newArrayList(); head1.add("数字" + System.currentTimeMillis()); List<String> head2 = ListUtils.newArrayList(); head2.add("日期" + System.currentTimeMillis()); list.add(head0); list.add(head1); list.add(head2); return list; } private List<List<Object>> dataList() { List<List<Object>> list = ListUtils.newArrayList(); for (int i = 0; i < 10; i++) { List<Object> data = ListUtils.newArrayList(); data.add("字符串" + i); data.add(new Date()); data.add(0.56); list.add(data); } return list; }
在这里需要注意的一点是:在使用无对象写入的时候,对于存放在list中的表头数据,需要每一列的表头都单独的存放在一个list中,否则写出的表格的表头会纵向排列,不行你可以试试哟!
以上就是使用easyexcel实现数据的有对象写入和无对象写入的操作了,关于easyexcel的操作还有很多,且听小猿之后和大家慢慢分享~
觉得不错记得点赞收藏哦,之后继续分享更多关于easyexcel的实用技巧,
我是灰小猿,我们下期见!
这篇关于Excel神办公—【一】使用EasyExce实现数据“有对象写入”和“无对象写入”的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-27Rocket消息队列资料:新手入门指南
- 2024-11-27rocket消息队资料详解与入门指南
- 2024-11-27RocketMQ底层原理资料详解入门教程
- 2024-11-27RocketMQ项目开发资料:新手入门教程
- 2024-11-27RocketMQ项目开发资料详解
- 2024-11-27RocketMQ消息中间件资料入门教程
- 2024-11-27初学者指南:深入了解RocketMQ源码资料
- 2024-11-27Rocket消息队列学习入门指南
- 2024-11-26Rocket消息中间件教程:新手入门详解
- 2024-11-26RocketMQ项目开发教程:新手入门指南