
看完本文,你一定会有所收获
一、介绍在上篇文章中,我们简单的介绍了 excel 导入导出技术实践方案,就目前而已,使用最多的开源框架主要有以下三类,分别是:
- apache poi:poi是使用最广的一种导入导出框架,但是缺点也很明显,导出大数据量的时候,容易oom
- easypoi:easypoi 的底层也是基于 apache poi 进行深度开发的,它主要的特点就是将更多重复的工作,全部简单化,避免编写重复的代码,最显著的特点就是导出的支持非常丰富
- easyexcel:easyexcel 是阿里巴巴开源的一款 excel 解析工具,底层逻辑也是基于 apache poi 进行二次开发的,目前的应用也非常广
不同点在于:
1、easypoi 在读写数据的时候,优先是先将数据写入内存,因此读写性能非常高,这种操作平时使用的时候不会出现什么问题,但是当数据量很大的时候,会出现 oom,当然它也提供了 sax 模式一行一行解析,需要自己根据当前场景来实现 。
2、easyexcel 默认基于 sax 模式一行一行解析,明显降低了内存,不会出现 oom 情况,程序有过高并发场景的验证,因此整体运行比较稳定,相对于 easypoi 来说,读写性能稍慢!
3、easypoi 的 api 非常丰富,easyexcel 功能的支持,比较简单 。
就小编的实际使用情况来看,easypoi 相比 easyexcel 而言,有很多的优点,尤其是他的 api 非常丰富,但是在实际使用过程中,发现在导入几千条数据的时候,有时容易发生异常,尤其是当老板使用的时候,突然蹦出这么一个异常,这个时候是没办法容忍的 。
但是当改用成 easyexcel 的时候,不会出现这个问题,因此如果你经常要导入的数据量非常大,那么我推荐你使用 easyexcel 。
今天,我们就以 easyexcel 框架为例,结合实际开发案例,给大家详细介绍一下 easyexcel 的使用,再下篇文章中,我们再来介绍 easypoi,可能也有理解不到位的地方,欢迎网友们批评指出!
二、程序实例2.1、添加依赖包
<dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.2.6</version></dependency>2.2、导出 exceleasyexcel 的导出支持两种方式,一种是通过实体类注解方式来生成文件,另一种是通过动态参数化生成文件 。2.2.1、实体类注解方式生成文件实体类注解方式生成文件,操作非常简单,只需要在对应的属性字段上添加@ExcelProperty注解,然后填写列名,配置就完成了,示例代码如下:
public class UserEntity {@ExcelProperty(value = "https://www.jinnalai.com/fenxiang/姓名")private String name;@ExcelProperty(value = "https://www.jinnalai.com/fenxiang/年龄")private int age;@DateTimeFormat("yyyy-MM-dd HH:mm:ss")@ExcelProperty(value = "https://www.jinnalai.com/fenxiang/操作时间")private Date time;//set、get...}public static void main(String[] args) throws FileNotFoundException {List<UserEntity> dataList = new ArrayList<>();for (int i = 0; i < 10; i++) {UserEntity userEntity = new UserEntity();userEntity.setName("张三" + i);userEntity.setAge(20 + i);userEntity.setTime(new Date(System.currentTimeMillis() + i));dataList.add(userEntity);} //定义文件输出位置FileOutputStream outputStream = new FileOutputStream(new File("/Users/panzhi/Documents/easyexcel-export-user1.xlsx"));EasyExcel.write(outputStream, UserEntity.class).sheet("用户信息").doWrite(dataList);}运行程序,打开文件内容结果!
推荐阅读
- java的excel的读取和写入 java操作excel
- ececl表格常用的公式 新手入门excel表格制作
- 如何用excel做回归分析 回归分析步骤推荐
- excel办公软件 excel办公软件基础知识
- jsp调用java方法 java基础面试题及答案
- 在线excel转json excel一键转换json
- 表格软件excel如何使用 excel表格免费版
- excel解密方法 excel解密三步法
- 堆排序代码解析 堆排序的算法及代码实现
- socket传输文件的原理 socket实现文件传输
