【狂神说Java】POI技术详解

本文详细介绍了Apache POI库和EasyExcel在Java中操作Excel的使用,包括Excel的读写,不同版本的区别,以及大文件处理策略。重点讲解了POI的HSSF、XSSF和SXSSF在处理大数据量时的优缺点,并提供了EasyExcel的导入、写入和读取测试案例。
摘要由CSDN通过智能技术生成

目录

狂神视频地址

https://www.bilibili.com/video/BV1Ua4y1x7BK


1、常用信息

(1)、将用户信息导出为excel表格(导出数据…)

(2)、将Excel表中的信息录入到网站数据库(习题上传…)

(3)开发中经常会设计到excel的处理,如导出Excel,导入Excel到数据库中!操作Excel目前比较流行的就是Apache POI和阿里巴巴的easyExcel !

是什么:组件,工具

Apache POI 是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程式对Microsoft Office格式档案读和写的功能。


2、Apache POI

官网:

https://poi.apache.org/

在这里插入图片描述


3、easyExcel

官网:

https://www.yuque.com/easyexcel/doc/easyexcel

Java领域解析,生成Excel比较有名的框架有Apache poi,jxl等,但他们都存在一个严重的问题就是非常的耗内存,如果你的系统并发量不大的话可能还行,但是一旦并发上来后一定会OOM或者JVM频繁的full gc.

EasyExcel是阿里巴巴开源的一个excel处理框架,以使用简单,节省内存著称,EasyExcel能大大减少占用内存的主要原因是在解析Excel时没有将文件数据一次性全部加载到内存中,而是从磁盘上一行行读取数据,逐个解析。

EasyExcel采用一行一行的解析模式,并将一行的解析结果以观察者的模式通知处理(AnalysisEventListener)。

在这里插入图片描述


4、xls和xlsx区别

03和07版本的写,就是对象不同,方法一样

最大行列得数量不同:

xls最大只有65536行、256列

xlsx可以有1048576行、16384列

        <!--xls(03)-->
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>3.9</version>
        </dependency>
        
        <!--xlsx(07)-->
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>3.9</version>
        </dependency>

poi 操作xls的
poi-ooxml 操作xlsx的

操作的版本不同,使用的工具类也不同

在这里插入图片描述
工作簿:
工作表:
行:
列:


5、POI Excel 写 03和07版本方式

5.1小数据量

package cn.bloghut;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.joda.time.DateTime;
import org.junit.jupiter.api.Test;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.util.Date;

/**
 
  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值