Java POI实现将导入Excel文件的示例代码
问题描述
现需要批量导入数据,数据以Excel形式导入。
POI介绍
我选择使用的是apachePOI。这是有Apache软件基金会开放的函数库,他会提供API给java,使其可以对office文件进行读写。
我这里只需要使用其中的Excel部分。
实现
首先,Excel有两种格式,一种是.xls(03版),另一种是.xlsx(07版)。针对两种不同的表格格式,POI对应提供了两种接口。HSSFWorkbook和XSSFWorkbook
导入依赖
org.apache.poi poi RELEASE org.apache.poi poi-ooxml RELEASE
处理版本
Workbookworkbook=null; try{ if(file.getPath().endsWith("xls")){ System.out.println("这是2003版本"); workbook=newXSSFWorkbook(newFileInputStream(file)); }elseif(file.getPath().endsWith("xlsx")){ workbook=newHSSFWorkbook(newFileInputStream(file)); System.out.println("这是2007版本"); } }catch(IOExceptione){ e.printStackTrace(); }
这里需要判断一下Excel的版本,根据扩展名,用不同的类来处理文件。
获取表格数据
获取表格中的数据分为以下几步:
1.获取表格
2.获取某一行
3.获取这一行中的某个单元格
代码实现:
//获取第一个张表 Sheetsheet=workbook.getSheetAt(0); //获取每行中的字段 for(inti=0;i<=sheet.getLastRowNum();i++){ Rowrow=sheet.getRow(i);//获取行 //获取单元格中的值 StringstudentNum=row.getCell(0).getStringCellValue(); Stringname=row.getCell(1).getStringCellValue(); Stringphone=row.getCell(2).getStringCellValue(); }
持久化
获取出单元格中的数据后,最后就是用数据建立对象了。
ListstudentList=newArrayList<>(); for(inti=0;i<=sheet.getLastRowNum();i++){ Rowrow=sheet.getRow(i);//获取行 //获取单元格中的值 StringstudentNum=row.getCell(0).getStringCellValue(); Stringname=row.getCell(1).getStringCellValue(); Stringphone=row.getCell(2).getStringCellValue(); Studentstudent=newStudent(); student.setStudentNumber(studentNum); student.setName(name); student.setPhoneNumber(phone); studentList.add(student); } //持久化 studentRepository.saveAll(studentList);
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。