使用apache poi 实现Excel批量导入
来源:互联网 发布:一号店和淘宝开店 编辑:程序博客网 时间:2024/05/22 00:18
前言
做客户模块的时候需要用到Excel的批量导入,而当前使用的较多的是apache下的POI,因为微软公司的Excel表格有两种格式,分别是xls和xlsx(区别是后者使用xml来格式话保存的,压缩的更好),本文以xlsx文件格式为例,其实两者都是一样的。
依赖
两个必须加,因为前一个依赖的xls的,xlsx依赖在后面一个依赖中。
<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.12-beta1</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.10-FINAL</version> </dependency>
核心类
- XSSFWorkbook 类似于创建一个工作薄
- XSSFSheet 一个Excel表的内容
- XSSFRow 表的一行
- XSSFCell 每行的一个单元
说明:以上就是poi对Excel操作的核心四个类,从这名字就可以看出来其作用了。流程就是使用文件输入流获取Excel文件放入XSSFWorkbook中,再通过方法getNumberOfSheets()获取XSSFSheet个数,继续通过getLastRowNum()获取单元格数量,最后就是getCell()来取值就行了。
核心代码如下:
//path为xlsx文件路径 InputStream inputStream = new FileInputStream(path); //add the Workbook XSSFWorkbook xssfWorkbook = new XSSFWorkbook(inputStream); Member member = null; User user = null; List<Member> list = new ArrayList<Member>(); // Read the Sheet for (int numSheet = 0; numSheet < xssfWorkbook.getNumberOfSheets(); numSheet++) { XSSFSheet xssfSheet = xssfWorkbook.getSheetAt(numSheet); if (xssfSheet == null) { continue; } // Read the Row for (int rowNum = 1; rowNum <= xssfSheet.getLastRowNum(); rowNum++) { XSSFRow xssfRow = xssfSheet.getRow(rowNum); if (xssfRow != null) { member = new Member(); user = new User(); XSSFCell name = xssfRow.getCell(0); XSSFCell userId = xssfRow.getCell(1); XSSFCell statusId = xssfRow.getCell(2); XSSFCell phoneNumber = xssfRow.getCell(3); XSSFCell typeId = xssfRow.getCell(4); XSSFCell industryId = xssfRow.getCell(5); XSSFCell areaId = xssfRow.getCell(6); XSSFCell address = xssfRow.getCell(7); /*中间省略一部分*/ user.setUsername(getValue(userId)); member.setUser(user); list.add(member); } } } return list; }
后记
读取Excel表格数据跟简单,就是几个类的调用,还是挺方便的,还有一点说明一下,对于xls文件就是那个老版本,使用的方式一样,只是名字不同而已,分别对应HSSFWorkbook,HSSFSheet,HSSFRow,HSSFCell
参考文章
- http://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFRow.html
- http://www.cnblogs.com/Skyyj/p/5181850.html
- http://www.cnblogs.com/hongten/p/java_poi_excel_xls_xlsx.html
阅读全文
0 0
- 使用apache poi 实现Excel批量导入
- Jenke 使用apache的poi实现导入导出excel
- 使用apache的poi实现导入导出excel
- 使用apache的poi实现导入导出excel
- Java使用poi批量导入excel
- java 使用POI批量导入excel数据
- java 使用POI批量导入excel数据
- Apache POI实现数据的Excel导入
- Java使用Apache poi 导入Excel文件
- excel poi 批量导入源码
- java使用POI操作excel文件,实现批量导出,和导入
- POI实现Excel批量导入数据(SpringMVC)
- 使用POI 实现 Excel 导入导出
- java中使用poi实现导入Excel
- Spring使用POI实现Excel导入导出
- Spring使用POI实现Excel导入导出
- 使用POI实现Excel导入与导出
- Spring使用POI实现Excel导入导出
- 移动端1px像素设置
- 3 Composer难理解?那么说明你对PHP这些功能不了解
- 省队集训Round2 DAY2
- jQuery源码阅读(一)---jQuery源码整体架构
- Java数据类型
- 使用apache poi 实现Excel批量导入
- leetcode617. Merge Two Binary Trees
- 一个嵌入式课程设计
- 图谱
- java中int i 会出现i+1<i或者i-1>i吗
- [AHK]将数组中内容填充到excel
- GrrenDao简单实现
- Java使用内部类存放数据
- 【多线程】共享对象和数据的解决方案