一、简介

二、案例

2.1 POM依赖

        <!-- 阿里开源EXCEL --><dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>1.1.2-beta4</version></dependency>

2.2 POJO对象

package com.authorization.privilege.excel;import java.util.Date;/*** @author qjwyss* @date 2019/3/15* @description*/
public class User {private String uid;private String name;private Integer age;private Date birthday;public User() {}public User(String uid, String name, Integer age, Date birthday) {this.uid = uid;this.name = name;this.age = age;this.birthday = birthday;}public String getUid() {return uid;}public void setUid(String uid) {this.uid = uid;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public Date getBirthday() {return birthday;}public void setBirthday(Date birthday) {this.birthday = birthday;}@Overridepublic String toString() {return "User{" +"uid='" + uid + '\'' +", name='" + name + '\'' +", age=" + age +", birthday=" + birthday +'}';}
}

2.3 测试环境

2.3.1 一个SHEET容量

/*** @author qjwyss* @date 2019/5/31* @description*/
public class ExcelReadTest {private Logger logger = LoggerFactory.getLogger(ExcelReadTest.class);@Testpublic void readExcelTest() throws Exception {InputStream inputStream = new FileInputStream(new File("E:\\temp\\7.xlsx"));System.out.println("开始读取");List<User> dataList = new ArrayList<User>();EasyExcelFactory.readBySax(inputStream, new Sheet(1,1), new AnalysisEventListener() {@Overridepublic void invoke(Object object, AnalysisContext analysisContext) {logger.info("当前行:{} 对应的对象信息为:{}", analysisContext.getCurrentRowNum(), object);ArrayList userObj = (ArrayList) object;User user = new User();user.setUid(userObj.get(0) == null ? null : userObj.get(0).toString());user.setName(userObj.get(1) == null ? null : userObj.get(1).toString());user.setAge(userObj.get(2) == null ? null : Integer.valueOf(userObj.get(2).toString()));dataList.add(user);// 每批插入的数量int perReadCount = 5;Integer currentRowNum = analysisContext.getCurrentRowNum();if (currentRowNum % perReadCount == 0) {logger.info("存储dataList的大小为:{}",dataList.size());dataList.clear();}}@Overridepublic void doAfterAllAnalysed(AnalysisContext analysisContext) {logger.info("最后一批存储dataList的大小为:{}",dataList.size());dataList.clear();//解析结束销毁不用的资源}});System.out.println("读取完毕");}}

测试输出结果:此时测试了一个有7条记录的excel,输出结果如下

开始读取
18:19:12.049 [main] INFO com.authorization.privilege.excel.ExcelReadTest - 当前行:1 对应的对象信息为:[ID_0, null, 0, Tue Apr 02 20:05:37 CST 2019]
18:19:12.056 [main] INFO com.authorization.privilege.excel.ExcelReadTest - 当前行:2 对应的对象信息为:[ID_1, 小明1, 1, Tue Apr 02 20:05:37 CST 2019]
18:19:12.057 [main] INFO com.authorization.privilege.excel.ExcelReadTest - 当前行:3 对应的对象信息为:[ID_2, 小明2, 2, Tue Apr 02 20:05:37 CST 2019]
18:19:12.058 [main] INFO com.authorization.privilege.excel.ExcelReadTest - 当前行:4 对应的对象信息为:[ID_3, 小明3, 3, Tue Apr 02 20:05:37 CST 2019]
18:19:12.059 [main] INFO com.authorization.privilege.excel.ExcelReadTest - 当前行:5 对应的对象信息为:[ID_4, 小明4, 4, Tue Apr 02 20:05:37 CST 2019]
18:19:12.059 [main] INFO com.authorization.privilege.excel.ExcelReadTest - 存储dataList的大小为:5
18:19:12.060 [main] INFO com.authorization.privilege.excel.ExcelReadTest - 当前行:6 对应的对象信息为:[ID_5, 小明5, null, Tue Apr 02 20:05:37 CST 2019]
18:19:12.061 [main] INFO com.authorization.privilege.excel.ExcelReadTest - 当前行:7 对应的对象信息为:[ID_6, 小明6, 6, Tue Apr 02 20:05:37 CST 2019]
18:19:12.061 [main] INFO com.authorization.privilege.excel.ExcelReadTest - 最后一批存储dataList的大小为:2
读取完毕

2.4 生产环境

2.4.1 一个SHEET容量

TODO  就是把上面的分批处理改为数据库批量插入  TODO

阿里开源(EasyExcel)---导入EXCEL相关推荐

  1. 阿里开源 EasyExcel(Excel导入导出 推荐使用)

    二.阿里开源 EasyExcel 使用可以直接看(点击)官方文档 github地址:(https://github.com/alibaba/easyexcel Java解析.生成Excel比较有名的框 ...

  2. 阿里云EasyExcel读写excel表数据

    阿里云EasyExcel读取excel表数据 1.待读取的excel表test.xls 2.导入Maven依赖 <dependency><groupId>com.alibaba ...

  3. easyExcel 导入Excel数据

    easyExcel 导入Excel数据 最近公司项目需要导入几十万的Excel数据,我这里用的是现在最流行的easyExcel, 希望能帮助到你 首先导入jar包 <dependency> ...

  4. 阿里开源(EasyExcel):使用Java将数据导出为Excel表格、带样式----》java web下载 Excel文件

    目录 一.技术选型 二.实现过程 1.导入依赖 2.编写工具类 EasyExcelUtil 3.公用参数类 EasyExcelParams 4.表格样式实体类 MyWriteHandler 5.数据实 ...

  5. 阿里的Easyexcel读取Excel文件(最新版本)

      本篇文章主要介绍一下使用阿里开源的Easyexcel工具处理读取excel文件,因为之前自己想在网上找一下这个简单的立即上手的博客,发现很多文章的教程都针对比较旧的版本的Easyexcel,没有使 ...

  6. 使用阿里的easyexcel 导入xls类型Excel文件报错问题深挖

    1.报错如下: Xls must be available markSupported,you can do like this <code> new BufferedInputStrea ...

  7. Excel POI(了解,推荐使用阿里开源 EasyExcel)

    一.POI概述 Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能.(相对比较麻烦,数据量大可能会报OO ...

  8. easyExcel导入excel实现动态进度条

    问题:导入一个excel,实现实时进度条的效果 思路: easyExcel可以获取到excel的总条数,读每一行时存redis,当前条数+1,前端每3秒调用获取redis中的进度数据 代码: priv ...

  9. EasyExcel导入excel中时间格式到LocalDateTime字段转换器Converter

    项目开发中,Excel导入导出一直是比较重要并且常见的一个功能,之前在项目开发中一直使用的是Apache poi,最近发现alibaba推出的一个框架Easy Excel ,官网地址:EasyExce ...

  10. 阿里开源 Easy-Excel合并单元格数据

    最终效果图 废话不多说,直接上代码 导入阿里云依赖jar包 封装实体类: 开始编写合并单元格: 组装数据的方法: 打完收工...欢迎大家来交流

最新文章

  1. 黄聪:C# webBrowser控件禁用alert,confirm之类的弹窗解决方案
  2. 【转】采购提前期概述
  3. Sqlserver中查询存储过程是否包含某些文本
  4. java怎么实现同步到微博功能_新浪微博信息站外同步的完整实现
  5. 第五季1:AP模式USB-WIFI网卡移植与测试
  6. 开放app开放login_开放值得付出努力吗?
  7. 从程序员到项目经理(三)
  8. 三星Galaxy S22 Ultra发布推迟:此前至少5款骁龙8平台旗舰亮相
  9. Colidity-- Dominator
  10. Minecraft InputFix
  11. 机器学习基础算法17-决策树-鸢尾花数据集分类及决策树深度与过拟合
  12. linux资源监控分析,inux 资源监控分析-pidstat
  13. 2、Linux多线程,线程的分离与结合
  14. 2008服务器文件共享,2008服务器文件共享
  15. PMP搞心态,解读最新『三大领域』考试内容:(附上第7版教材)
  16. arcpy利用XY创建点
  17. 什么是死亡之 Ping 攻击?
  18. 南京大学俞扬博士AIDL演讲全文:强化学习前沿(上)
  19. 曾经的移动应用推广八法尚能饭否?再加一法大概就事半功倍!
  20. 群晖挂载阿里网盘通过 cloud sync 实现加密备份

热门文章

  1. 快用苹果助手安装失败_为什么我的苹果ID总是说ID或密码不对!我输入的是正确的!...
  2. 令人抓狂的100个神经签名
  3. 什么蓝牙耳机听歌好?听歌音质好的蓝牙耳机推荐
  4. nashorn js 调用 java_Java8 Nashorn实现Java调用javascript代码
  5. 2019计蒜之道复赛-A-外教 Michale 变身大熊猫(线段树求LIS及其元素出现概率)
  6. 前端vue项目获取当前登录用户id以及后端将MultipartFile转换为Base64字符串
  7. SDUT 2138 图结构练习——BFSDFS——判断可达性
  8. 【笔记】Centos7安装vsftp服务
  9. The requested list key '#request.localprovi' could not be resolved as a collection/array/map/enumera
  10. 火车站临时身份证明窗口位置。