Java Excel文件解析以及超大Excel文件读写

前言:

在Java技术生态圈中,可以进行Excel文件处理的主流技术包括:Apache POI、JXL、Alibaba EasyExcel等。
Apache POI基于DOM方式进行解析,将文件直接加载内存,所以速度较快,适合Excel文件数据量不大的应用场景。JXL只支持Excel 2003以下版本,所以不太常见。
Alibaba EasyExcel采用逐行读取的解析模式,将每一行的解析结果以观察者的模式通知处理(AnalysisEventListener),所以比较适合数据体量较大的Excel文件解析。

一、Apache POI

Apache POI是用Java编写的免费开源的跨平台的Java API,Apache POI提供给Java程序对Microsoft Office格式档案进行读写功能的API开源类库。
它分别提供对不同格式文件的解析:
●HSSF - 提供读写Microsoft Excel格式档案的功能。
●XSSF - 提供读写Microsoft Excel OOXML格式档案的功能。
●HWPF - 提供读写Microsoft Word格式档案的功能。
●HSLF - 提供读写Microsoft PowerPoint格式档案的功能。
●HDGF - 提供读写Microsoft Visio格式档案的功能。

二、XSSF解析Excel文件

HSSF用于解析旧版本(*.xls)Excel文件,由于旧版本的Excel文件只能存在65535行数据,所以目前已经不常用。所以目前主要采用XSSF进行新版本(*.xlsx)Exce文件的解析。

需要的jar包:在我的资源里

WorkBook(Excel文件)

WorkBook是一个接口,所以创建WorkBook引用时需指向子类对象创建好以后所代表的是一个Excel文件

	// 解析一个excel文件

		try (// 通过输入流,读取excel文件
				FileInputStream in = new FileInputStream("D:\\1694318113\\FileRecv\\1627356552686.xlsx");
				// 将输入流传入Workbook
				Workbook workbook = new XSSFWorkbook(in)) {
			// Sheet:工作簿
			// 获取工作簿
			int sheetNumber = workbook.getNumberOfSheets();
			System.out.println("工作薄数量:" + sheetNumber);

			// 按照名称获取工作簿
			Sheet sheet1 = workbook.getSheet("Sheet0");
            // 通过下标方式获取工作簿
			Sheet sheet2 = workbook.getSheetAt(1);
			System.out.println("工作薄1中的数据行" + sheet1.getLastRowNum());
			System.out.println("工作薄2中的数据行" + sheet2.getLastRowNum());
		}

 我们需要使用IO流,所以推荐将输入流以及创建XSSFWorkbook对象代码块放入try(){}catch{}块中

需要解析什么类型文件创建什么类型的对象 

●HSSF - 提供读写Microsoft E

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值