本篇文章小编给大家分享一下Java利用poi读取Excel代码实现方法解析,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。
前言
用户可以直接读取本地文件,也可以通过上传文件的形式读取excel
注意:poi对于读取到空白行的时候,会默认的认为是最后一行,将不会再读取空白行下面的数据
第一步导入依赖
org.apache.poi poi 4.1.2 org.apache.poi poi-ooxml 4.1.2
第二步实现测试类+测试
创建ReloadExcelTest .java文件
此时找到excel的文件路径,写文件全名:路径+文件全名
例:String reloadPath=“D:ExcelTesttest.xlsx”;
windows路径之间加\
测试
package tech.niua.admin.outputvalue.util.reloadexcel; import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import tech.niua.admin.outputvalue.domain.OutputValue; import java.io.IOException; public class ReloadExcelTest { public static void readExcel(String reloadPath) throws IOException { //1.获取工作簿 XSSFWorkbook workbook = new XSSFWorkbook(reloadPath); //2.获取工作表 XSSFSheet sheet = workbook.getSheetAt(0); //获取行 //cell.setCellType(Cell.CELL_TYPE_STRING); //将不同类型的数据类型转为String int lastRowNum = sheet.getLastRowNum(); for (int i = 1; i <= lastRowNum; i++) { OutputValue outputValueEntity = OutputValue.builder().build(); Row rowValue = sheet.getRow(i); //获取每一行中每一个单元格的数据的数据 for (int j = 0; j < 4; j++) { DataFormatter formatter = new DataFormatter(); String value = formatter.formatCellValue(rowValue.getCell(j)); System.out.print(value+" "); } System.out.println(); } } }
注意:4.1.2版本的poi已经不在使用cell.setCellType(Cell.CELL_TYPE_STRING);这种对于读取到数据设置为String类型的这种形式,将不再支持
改用为:
DataFormatter formatter = new DataFormatter();
String value = formatter.formatCellValue(rowValue.getCell(j));
此时value就是我们读取到的值,可以做一个相应的转换存储到集合或者对象的形式接收
测试
public static void main(String[] args) throws IOException { String reloadPath="D:\ExcelTest\test.xlsx"; ReloadExcelTest.readExcel(reloadPath); }
实际应用
我们可以用集合的形式接收,或者以集合对象的形式接收,这样就能够对于读取到的数据做一个操作处理,以便于后面实现批量上传功能。
----->批量上传:前端页面上传excel文件,由系统自动导入excel的数据到数据库。