首先第一步引入jar包或者引入依赖。用的是springboot测试环境。所以我引用的依赖:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
然后编写测试代码:
1.读取文件
@Test
void readXlsx() throws IOException {
File file = new File("F:\\SpringBoot2.0\\ybkj_insertValueToDB\\src\\test\\java\\com\\example\\ybkj\\test.xlsx");
FileInputStream fis = null;
Workbook workBook = null;
fis = new FileInputStream(file);
workBook = WorkbookFactory.create(fis);
}
2.获取文件详细信息:
可以看出我的这个文件有3个sheet
int numberOfSheets = workBook.getNumberOfSheets(); // 获取有几个sheet 遍历
System.out.println(numberOfSheets);
3.选择第几个sheet
Sheet sheetAt = workBook.getSheetAt(0); //获取第1张表
String sheetName = sheetAt.getSheetName();
System.out.println("工作表名称:" + sheetName);
4.获取该表单中的行和列:
int rowsOfSheet = sheetAt.getPhysicalNumberOfRows();
System.out.println("当前表格的总行数:" + rowsOfSheet);
Row row = sheetAt.getRow(0);//获取的第几行数据
int cellCount = row.getPhysicalNumberOfCells(); //获取总列数
5.获取每一个单元格内的内容
Row row1 = sheetAt.getRow(1);//获取的第几行数据
String vul_no=row1.getCell(0).toString(); //获取第一行第一列单元格中的数据
6.以上已经完成基本的操作,还有一下细节:
Cell cell=row1.getCell(0);
double numericCellValue = cell.getNumericCellValue(); //读取数值
Cell cell2=row1.getCell(2);
Date dateCellValue = cell2.getDateCellValue(); //获取日期值
可以看到日期已经获取到了,但是格式还需要自己调换一下。
致谢:
文中的大部分代码我是粘贴的别人的来源:https://blog.csdn.net/tanqingfu1/article/details/105369858