在上代码之前首先说说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.创建工作区workbookXSSFWorkbook 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,汇报完毕!