springboot Utils Excel工具类
在公司做项目的时候用到了读取Excel的工具,从网上找了个工具类自己又根据需要改了改。上传一下以备下次使用
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.15</version>
</dependency>public class ExcelReader {
private XSSFSheet sheet;
ExcelReader(String filePath,String sheetName){
FileInputStream fileInputStream = null;
try {
fileInputStream = new FileInputStream(filePath);
XSSFWorkbook sheets = new XSSFWorkbook(fileInputStream);
//获取sheet
sheet = sheets.getSheet(sheetName);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 根据行和列的索引获取单元格的数据
* @param row
* @param column
* @return
*/
public String getExcelDateByIndex(int row,int column){
XSSFRow row1 = sheet.getRow(row);
String cell = row1.getCell(column).toString();
return cell;
}
/**
* 根据某一列值为“******”的这一行,来获取该行第x列的值
* @param caseName
* @param currentColumn 当前单元格列的索引
* @param targetColumn 目标单元格列的索引
* @return
*/
public String getCellByCaseName(String caseName,int currentColumn,int targetColumn){
String operateSteps="";
//获取行数
int rows = sheet.getPhysicalNumberOfRows();
for(int i=0;i<rows;i++){
XSSFRow row = sheet.getRow(i);
String cell = row.getCell(currentColumn).toString();
if(cell.equals(caseName)){
operateSteps = row.getCell(targetColumn).toString();
break;
}
}
return operateSteps;
}
/**
* #Description 获取一个方格内所有的数据
* @param
* @return
* @author Wu Xian
* #Date 2021/6/20
*/
public List<List<String>> getCellBox(int beginRow,int endRow,int beginColumn,int endRowColumn){
List<List<String>> rows = new ArrayList<>();
for(int i = beginRow;i<=endRow;i++){
XSSFRow row = sheet.getRow(i);
List<String> cells = new ArrayList<>();
for(int j = beginColumn;j<=endRowColumn;j++){
String cell = row.getCell(j).toString();
cells.add(cell);
}
rows.add(cells);
}
return rows;
}
/**
* #Description 获取一个指定列区间从指定一行到最后的数据
* @param
* @return
* @author Wu Xian
* #Date 2021/6/21
*/
public List<List<String>> getCellBox(int beginRow,int beginColumn,int endRowColumn){
List<List<String>> rows = new ArrayList<>();
int i = beginRow;
while(!sheet.getRow(i).getCell(0).toString().equals("")){
XSSFRow row = sheet.getRow(i);
List<String> cells = new ArrayList<>();
for(int j = beginColumn;j<=endRowColumn;j++){
String cell = row.getCell(j).toString();
cells.add(cell);
}
rows.add(cells);
i++;
}
return rows;
}
}
