当前位置:网站首页 > Java教程 > 正文

java excel编程入门教程



✅作者简介:CSDN内容合伙人、信息安全专业在校大学生🏆
🔥系列专栏 : 狂神说JAVA系列笔记
📃新人博主 :欢迎点赞收藏关注,会回访!
💬个人格言:舞台再大,你不上台,永远是个观众。平台再好,你不参与,永远是局外人。能力再大,你不行动,只能看别人成功!没有人会关心你付出过多少努力,撑得累不累,摔得痛不痛,他们只会看你最后站在什么位置,然后羡慕或鄙夷。


常用场景
1、 将用户信息导出为excel表格
2、将Excel表中的信息导入到数据库
在开发中我们经常会涉及到excel的处理,如导出Excel,导入Excel到数据库中!
操作Excel目前比较流行的就是 Apache POI和阿里巴巴的easyExcel

Apache POI

Apache POI 官网 https://poi.apache.org/
image.png

image.png

easyExcel

easyExcel 官网地址 https://easyexcel.opensource.alibaba.com/
image.png
EasyExcel是阿里巴巴开源的一个excel处理框架,以使用简单,节约内存著称
它能大量减少占用内存的主要原因是在解析Excel时没有将文件数据一次性全部加载到内存中,而是从一个磁盘上一行行读取数据,逐个解析。
内存问题:POI =100w 先加载到内存,再写入文件 EasyExcel 1
下图是EasyExcel和POI造解析Excel的对比图
image.png
官方文档:EasyExcel · 语雀

创建项目

1、建立一个空项目kuang-excel
2、再创建普通Maven的Moudle kuang-poi
image.png
3、添加依赖
xLs(03)和xLs(07)的版本号需要相同,否则会报错
java.lang.NoSuchFieldError: DEFAULT
pom.xml

 

4、Excel表格中的几个概念:
image.png
03版最多支持65536行数据,07没有限制
image.png
对象说明
image.png

测试

直接创建测试类,编写测试即可:

 

数据批量导入

1.1 大文件写HSSF

 

image.png

1.2 大文件写XSSF

缺点:写数据时速度非常慢,非常耗内存,数据量过大时会发生内存溢出;
优点:可以写较大的数据量,没有限制;
只做一下修改

 
 

1.3 大文件写SXSSF

优点:可以写非常大的数据量,如100万条甚至更多条,写数据速度快,占用更少的内存;
缺点:过程中会产生临时文件,需要清理临时文件;
修改为:

 
 
 

运行上述操作结果如下:
image.png

2.1 Excel 03类型

 

2.2 Excel 07类型

 

2.3 读取不同类型

注意:读取不同的数据类型,是工作上的重点,这段类型匹配代码工作时可直接复制
新版本区别

 

CellType 枚举类 源码

 

测试
image.png

 

image.png
注意类型转换类型

2.4 计算公式

image.png

 

image.png

easyExcel官网地址: https://github.com/alibaba/easyexcel
image.png
EasyExcel是阿里巴巴开源的一个excel处理框架,以使用简单,节约内存著称。
EasyExcel能大量减少占用内存的主要原因是在解析Excel时没有将文件数据一次性全部加载到内存中,而是从一个磁盘上一行行读取数据,逐个解析。
下图是EasyExcel和POI在解析Excel时的对比图(时间与空间的相互取舍)。
image.png

1、导入依赖

pom.xml

 

2、读写操作

(1)写入操作

创建实体类DemoData:

 

具体操作:

 

image.png
image.png

(2)读取操作
 

<2>监听器

 

读取代码

 

结果:
固定套路:
1、写入,固定类格式进行写入
2、读取,根据监听器设置的规则进行读取!

了解,面向对象的思想,学会面向接口编程!
理解使用测试API
作业:把EasyExcel的所有API都测试一下(2~3小时!)

  • 上一篇: java482教程
  • 下一篇: 菜鸟教程 java swing
  • 版权声明


    相关文章:

  • java482教程2024-11-28 22:34:04
  • java教程351集2024-11-28 22:34:04
  • java程序设计教程课后习题答案2024-11-28 22:34:04
  • it java教程2024-11-28 22:34:04
  • java教程类与对象2024-11-28 22:34:04
  • 菜鸟教程 java swing2024-11-28 22:34:04
  • java 教程传智2024-11-28 22:34:04
  • java编程教程基础2024-11-28 22:34:04
  • 疯狂java教程42讲2024-11-28 22:34:04
  • java活塞虫教程2024-11-28 22:34:04