1、EasyExcel概述

Java解析、生成Excel比较有名的框架有Apache poi、jxl。但他们都存在一个严重的问题就是很是的耗内存,poi有一套SAX模式的API能够必定程度的解决一些内存溢出的问题,但POI仍是有一些缺陷,好比07版Excel解压缩以及解压后存储都是在内存中完成的,内存消耗依然很大。easyexcel重写了poi对07版Excel的解析,可以本来一个3M的excel用POI sax依然须要100M左右内存下降到几M,而且再大的excel不会出现内存溢出,03版依赖POI的sax模式。在上层作了模型转换的封装,让使用者更加简单方便。html

官方给出的数据,64M内存1分钟内读取75M(46W行25列)的Excel,固然还有急速模式能更快,可是内存占用会在100M多一点:web

2、EasyExcel经常使用功能

读Excel

写Excel

填充Excel

3、EasyExcel使用方法和调优

官方除了文档外,还提供了强大的demo代码。代码就不贴了,我只给出maven坐标:json

com.alibaba

easyexcel

2.1.4

默认大文件处理

默认大文件处理会自动判断,共享字符串5M如下会使用内存存储,大概占用15-50M的内存,超过5M则使用文件存储,而后文件存储也要设置多内存M用来存放临时的共享字符串,默认20M。除了共享字符串占用内存外,其余占用较少,因此能够预估10M,因此默认大概30M就能读取一个超级大的文件。并发

根据实际需求配置内存

4、EasyExcel的核心原理

一、文件解压文件读取经过文件形式

二、避免将所有所有数据一次加载到内存

采用sax模式一行一行解析,并将一行的解析结果以观察者的模式通知处理。 框架

三、抛弃不重要的数据

Excel解析时候会包含样式,字体,宽度等数据,但这些数据是咱们不关心的,若是将这部分数据抛弃能够大大下降内存使用。Excel中数据中Style占了至关大的空间。maven

5、该项目的优缺点

该项目不是阿里重点项目,目前只有三我的维护,但项目很活跃,得到的star数也很高,能够做为生产来使用。但要注意,目前还有如下功能还没有实现:字体

单个文件的并发写入、读取

读取图片

csv读取(这个后续可能会考虑)

java sax 解析excel,使用EasyExcel导入导出Excel报表-JAVA解析Excel工具相关推荐

  1. easyexcel导入时读不到数据_SpringBoot中EasyExcel实现Excel文件的导入导出

    前言 在我们日常的开发过程中经常会使用Excel文件的形式来批量地上传下载系统数据,我们最常用的工具是Apache poi,但是如果数据到底上百万时,将会造成内存溢出的问题,那么我们怎么去实现百万数据 ...

  2. 使用阿里开源的EasyExcel导入导出EXCEL——工具类

    工具类 package com.example.demo.util.excel;import com.alibaba.excel.EasyExcel; import com.alibaba.excel ...

  3. Java 利用EasyPoi做Excel模板的导入导出操作

    Java 利用EasyPoi做Excel模板的导入导出操作 项目背景 加入pom依赖 项目Excel模板图 代码实现 首先是实体类定义 Excel 实现导入 Excel的导出 结束语 项目背景 作为一 ...

  4. 【使用EasyExcel导入导出】

    使用EasyExcel导入导出 一,为什么要使用EasyExcel 1.1 EasyExcel与Poi的区别 Java解析.生成Excel比较有名的框架有Apache poi.jxl.但他们都存在一个 ...

  5. 阿里EasyExcel导入导出

    阿里EasyExcel导入导出 前言 使用阿里提供的EasyExcel进行excel的导入导出简单,方便,快捷 ` 一.使用版本 <dependency><groupId>co ...

  6. EasyExcel导入导出下载模板(带下拉)

    EasyExcel导入导出网上资料很多,这里就不多做描述了,总之就是一款比较轻而小,易用的excel操作工具包:这里在项目中使用到,做下笔记.以及表格中下拉框的实现: 声明:本文思路是借鉴于某大神的, ...

  7. 前端实现excel文件的导入导出

    前端实现excel文件的导入导出 导入文件 导出文件 导入文件 html: <el-dropdown v-waves @command="handleBatchCommand" ...

  8. 循序渐进开发WinForm项目(5)--Excel数据的导入导出操作

    随笔背景:在很多时候,很多入门不久的朋友都会问我:我是从其他语言转到C#开发的,有没有一些基础性的资料给我们学习学习呢,你的框架感觉一下太大了,希望有个循序渐进的教程或者视频来学习就好了. 其实也许我 ...

  9. SQL SERVER 与ACCESS、EXCEL的数据导入导出转换

    * 说明:复制表(只复制结构,源表名:a 新表名:b)       select * into b from a where 1<>1 * 说明:拷贝表(拷贝数据,源表名:a 目标表名:b ...

最新文章

  1. mysql5.5乱码问题_如何解决MySQL5.5的中文乱码问题
  2. bio linux 创建_不断升级,Java之BIO、NIO、AIO的演变
  3. flex项目,file not found错误解决
  4. .NET对象克隆的深究(转)
  5. leetcode 121. 买卖股票的最佳时机
  6. linux查看显卡核心数,linux查看硬件信息,linux查看硬盘信息,linux查看CPU信息,linux查看显卡,硬件型号信息 | 帮助信息-动天数据...
  7. Angular CLI的简单使用(1)
  8. 支付宝工程师如何搞定关系数据库的“大脑”——查询优化器
  9. Springpath专注于思科OEM开发工作
  10. 老男孩python14期全套-老男孩第十四期Python学习班之Day01
  11. Java单链表基本操作
  12. 快速消费品行业的营销费用的管理分类
  13. 华为2019校招笔试题之处理字符串(python版)
  14. k8s学习笔记4--搭建dashboard
  15. Python多线程实现WIFI破解
  16. Python之pandas库--基础
  17. Glide 4.9源码解析-缓存策略
  18. 【PAT甲级】1062 Talent and Virtue (25分)
  19. 一款优秀的BIDS辅助工具-BIDS Helper
  20. 【凸优化学习笔记3】几种重要的凸集

热门文章

  1. 面向对象——三大基本特征
  2. StyleGAN 架构解读(重读StyleGAN)精【1】
  3. 云主机安装宝塔面板注意事宜
  4. FlyAI资讯:人工智能的前世今生
  5. Go singleflight
  6. 【华为OD机试 2023】 最多几个直角三角形(C++ Java JavaScript Python)
  7. yum安装telnet
  8. 推荐一个非常实用的程序员导航网站,码农必备!
  9. [转] 张亚勤:网络是泡沫吗?(2001年微软亚洲研究院院长话题)
  10. 【C/C++】坐标旋转算法