Java开发小技巧(六):使用Apache POI读取Excel

 

前言

在数据仓库中,ETL最基础的步骤就是从数据源抽取所需的数据,这里所说的数据源并非仅仅是指数据库,还包括excel、csv、xml等各种类型的数据接口文件,而这些文件中的数据不一定是结构化存储的,比如各种各样的报表文件,往往是一些复杂的表格结构,其中不仅有我们需要的数据,还有一些冗余的、无价值的数据,这时我们就无法直接用一般数据加载工具直接读取入库了。也许你会想,数据源导出文件前先处理好数据就行了。然而,实际开发中数据源往往是多个的,而且涉及到不同的部门甚至公司,这其间难免会出现各种麻烦,甚至有些数据文件还是纯手工处理的,不一定能给到你满意的数据格式。所以我们不讨论谁该负责转换的问题,这里主要介绍如何使用Apache POI来从Excel数据文件中读取我们想要的数据,以及用Bean Validation对数据内容按照预定的规则进行校验。

文章要点:

  • Apache POI是什么
  • 如何使用Apache POI读取Excel文件
  • 使用Bean Validation进行数据校验
  • Excel读取工具类
  • 使用实例

Apache POI是什么

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


如何使用Apache POI处理Excel文件

1、导入Maven依赖

<dependency>     <groupId>org.apache.poi</groupId>     <artifactId>poi</artifactId>     <version>3.17</version> </dependency> <dependency>     <groupId>org.apache.poi</groupId>     <artifactId>poi-ooxml</artifactId>     <version>3.17</version> </dependency> <dependency>     <groupId>org.apache.poi</groupId>     <artifactId>poi-ooxml-schemas</artifactId>     <version>3.17</version> </dependency> <dependency>     <groupId>org.apache.poi</groupId>     <artifactId>poi-scratchpad</artifactId>     <version>3.17</version> </dependency>

2、创建Workbook实例

这里需要注意的是Excel文档的版本问题,Excel2003及以前版本的文档使用HSSFWorkbook对象,Excel2007及之后版本使用HSSFWorkbook对象

// Excel2003及以前版本 Workbook workbook = new XSSFWorkbook(new FileInputStream(path)); // Excel2007及之后版本 Workbook workbook = new HSSFWorkbook(new FileInputStream(path));

3、获取Sheet表格页对象

Sheet是Excel文档中的工作簿即表格页面,读取前要先找到数据所在页面,可以通过标签名或者索引的方式获取指定Sheet对象

// 按索引获取 Sheet sheet = workbook.getSheetAt(index); // 按标签名获取 Sheet sheet = workbook.getSheet(label);

4、获取Cell单元格对象


                        
关键字:
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信