代码:
1 package com.util;
2 import java.io.FileInputStream;
3 import java.io.FileOutputStream;
4 import java.io.InputStream;
5 import java.io.OutputStream;
6
7 import org.apache.poi.xssf.usermodel.XSSFCell;
8 import org.apache.poi.xssf.usermodel.XSSFRow;
9 import org.apache.poi.xssf.usermodel.XSSFSheet;
10 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
11 /**
12 * @auther 周博
13 * @date 2021/5/8 19:07
14 * @Blogurl https://www.cnblogs.com/smartisn/
15 */
16 public class Read_EXCEL {
17 private XSSFSheet sheet;
18
19 /**
20 * 构造函数,初始化excel数据
21 * @param filePath excel路径
22 * @param sheetName sheet表名
23 */
24 Read_EXCEL(String filePath,String sheetName){
25 FileInputStream fileInputStream = null;
26 try {
27 fileInputStream = new FileInputStream(filePath);
28 XSSFWorkbook sheets = new XSSFWorkbook(fileInputStream);
29 //获取sheet
30 sheet = sheets.getSheet(sheetName);
31 } catch (Exception e) {
32 e.printStackTrace();
33 }
34 }
35
36 /**
37 * 根据行和列的索引获取单元格的数据
38 * @param row
39 * @param column
40 * @return
41 */
42 public String getExcelDateByIndex(int row,int column){
43 XSSFRow row1 = sheet.getRow(row);
44 String cell = row1.getCell(column).toString();
45 return cell;
46 }
47
48 /**
49 * 根据某一列值为“******”的这一行,来获取该行第x列的值
50 * @param caseName
51 * @param currentColumn 当前单元格列的索引
52 * @param targetColumn 目标单元格列的索引
53 * @return
54 */
55 public String getCellByCaseName(String caseName,int currentColumn,int targetColumn){
56 String operateSteps="";
57 //获取行数
58 int rows = sheet.getPhysicalNumberOfRows();
59 for(int i=0;i<rows;i++){
60 XSSFRow row = sheet.getRow(i);
61 String cell = row.getCell(currentColumn).toString();
62 if(cell.equals(caseName)){
63 operateSteps = row.getCell(targetColumn).toString();
64 break;
65 }
66 }
67 return operateSteps;
68 }
69
70 //打印excel数据
71 public void readRead_EXCEL(){
72 //获取行数
73 int rows = sheet.getPhysicalNumberOfRows();
74 for(int i=0;i<rows;i++){
75 //获取列数
76 XSSFRow row = sheet.getRow(i);
77 int columns = row.getPhysicalNumberOfCells();
78 for(int j=0;j<columns;j++){
79 String cell = row.getCell(j).toString();
80 System.out.println(cell);
81 }
82 }
83 }
84
85 //测试方法
86 public static void main(String[] args){
87 Read_EXCEL sheet1 = new Read_EXCEL("E:\A兴趣代码\JAR\读取EXCEL\党徽.xls", "Sheet1");
88 //获取第二行第4列
89 String cell2 = sheet1.getExcelDateByIndex(1, 1);
90 //根据第3列值为“customer23”的这一行,来获取该行第2列的值
91 String cell3 = sheet1.getCellByCaseName("名字", 0,0);
92 System.out.println(cell2);
93 System.out.println(cell3);
94 }
95
96 }
结果:
