1、导入依赖
<!-- poi依赖 -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.17</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.17</version>
</dependency>
2、写controller
@PostMapping("/importExcel")
public ResultEntity importExcel(@RequestParam MultipartFile file){
try {
Workbook workbook = WorkbookFactory.create(file.getInputStream());
Sheet sheet = workbook.getSheetAt(0);
//获得当前sheet的开始行
int firstRowNum = sheet.getFirstRowNum();
//获得当前sheet的结束行
int lastRowNum = sheet.getLastRowNum();
for (int rowNum = firstRowNum + 1; rowNum <= lastRowNum; rowNum++) {
//获得当前行
Row row = sheet.getRow(rowNum);
if (row == null) {
continue;
}
//第一列
_1 = (String) PoiUtil.getCellDate(row,0,CellType.STRING);
//第二列
_2 = (String) PoiUtil.getCellDate(row,1,CellType.STRING);
}
return new ResultEntity();
} catch (Exception e) {
e.printStackTrace();
return new ResultEntity(StringUtils.isEmpty(e.getMessage()) ? "导入文件失败" : e.getMessage());
}
}
工具类:
import com.hooks.hooksspringbootstarter.util.StringUtils;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.ss.usermodel.Row;
/**
* @Author:
* @Date:
* @Description:
*/
public class PoiUtil {
/**
*
* @param row 行
* @param cellNum 当前行的第几个单元格
* @param cellType 单元格类型 {@link org.apache.poi.ss.usermodel.CellType}
* @return
*/
public static Object getCellDate(Row row, int cellNum, CellType cellType){
if (StringUtils.isEmpty(row.getCell(cellNum))){
return "";
}else {
row.getCell(cellNum).setCellType(cellType);
switch (cellType){
case STRING:
return row.getCell(cellNum).getStringCellValue();
case NUMERIC:
return row.getCell(cellNum).getNumericCellValue();
default:
return "";
}
}
}
}