在上代码之前首先说说Excel文件的一些名词
工作区workbook:可以理解为一个Excel文件,比如LinkL.xlsx文件
表sheet:一个.xlsx文件中的不同表
行row:表中的一行数据
单元格cell:每一行中的每一个数据就是单元格
附:我用的是Excel文件以xlsl结尾的是07版本,poi操作要使用XSSF对象
xls结尾的是03版本,poi操作要使用HSSF对象
上代码:
package Test;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileInputStream;
public class ExcelReadTest {
/*
* 解析excel数据流程
* 1,创建文件数据流
* 2,创建工作区work
* 3.选择对应表sheet
* 4.解析表结构,获取数据
* 5.打印数据
* 6.关闭流资源
*/
public static void main(String[] args) throws Exception {
// 1.获取文件流
FileInputStream fileInputStream = new FileInputStream("D:\\LinkL.xlsx");
// 2.创建工作区workbook
XSSFWorkbook workbook = new XSSFWorkbook(fileInputStream);
// 3.获取表sheet,这里sheet0代表获取下表为0的excel表,也就是第一个表
XSSFSheet sheet = workbook.getSheetAt(0);
// 4.获取数据
// getLastRowNum() 获取一张sheet表中行的数量
for(int i = 0 ; i <= sheet.getLastRowNum();i++){
// 获取第i行的数据
XSSFRow row = sheet.getRow(i);
// getLastCellNum() 获取这一行中单元格的数量
for(int j = 0; j < row.getLastCellNum(); j++){
// 获取第i行第j列的单元格数据
String cell = row.getCell(j).toString();
// 5.打印单元格数据
System.out.print(cell + " | ");
}
// println换行
System.out.println("");
}
// 6.关闭资源
fileInputStream.close();
}
}
执行结果:
OK,汇报完毕!
本文含有隐藏内容,请 开通VIP 后查看