1.接收上传的excel文件流,取出第一个sheet
@ApiOperation("【干部管理】根据excel导入干部和企业")@PostMapping("/importExcel")@Transactionalpublic Result importExcel(@RequestParam MultipartFile file) throws IOException {Logger logger = LoggerFactory.getLogger(getClass());ExcelReader reader = ExcelUtil.getReader(file.getInputStream());List<Sheet> sheets = reader.getSheets();Sheet rows = sheets.get(0);List<Map<String, String>> sheetData = ImportExcelUtil.getSheetData(rows);return null;}
2.ImportExcelUtil 工具类
package com.enterprise.util.excel;import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;import java.math.BigDecimal;
import java.util.*;//读取excel工具类
public class ImportExcelUtil {/*** 读取Sheet 的所有数据* @param rows* @return*/public static List<Map<String, String>> getSheetData(Sheet rows){Map<Integer, String> tableHeader=new HashMap<Integer, String>();List<Map<String, String>> list=new ArrayList<Map<String, String>>();int rowNum=0;Iterator<Row> rowIterator = rows.rowIterator();while (rowIterator.hasNext()){Row row = rowIterator.next();Iterator<Cell> cellIterator = row.cellIterator();int column=0;Map<String, String> tdata=new HashMap<>();while(cellIterator.hasNext()){Cell next = cellIterator.next();int columnIndex = next.getColumnIndex();String cellValue = getCellValue(next);if(rowNum == 0){//第0行,表头tableHeader.put(column,cellValue);}else {tdata.put(tableHeader.get(columnIndex),cellValue);}column++;}if(rowNum != 0){list.add(tdata);}rowNum ++;}return list;}private static String getCellValue(Cell cell) {CellType cellType = cell.getCellType();if (cellType == CellType.STRING){String stringCellValue = cell.getStringCellValue();return stringCellValue;}else if (cellType == CellType.NUMERIC){Double value = cell.getNumericCellValue();BigDecimal bd1 = new BigDecimal(Double.toString(value));// 去掉后面无用的零 如小数点后面全是零则去掉小数点String s = "";if (bd1.toPlainString().contains(".")){s = bd1.toPlainString().replaceAll("0+?$", "").replaceAll("[.]$", "");}else{s = bd1.toPlainString();}return s;}return "";}
}