package com.fdkankan.manage.util; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.apache.poi.hssf.usermodel.HSSFDateUtil; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.springframework.web.multipart.MultipartFile; import java.io.*; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; public class ExcelUtil { public static List> getExcelRowList(MultipartFile multipartFile) throws IOException { //行List,也是最终要返回的List List> rowList=new ArrayList<>(); Workbook workbook=getExcelWorkBook(multipartFile); Sheet sheet = workbook.getSheetAt(0); if (sheet == null) { throw new IOException("创建Sheet失败!"); } //开始遍历行 for (int i=0;i<= sheet.getLastRowNum();i++){ Row row = sheet.getRow(i); //列List HashMap map = new HashMap<>(); //转换为List数组 for (int cellNum=0;cellNum<= row.getLastCellNum();cellNum++){ Cell cell = row.getCell(cellNum); if(cell != null){ DataFormatter dataFormatter = new DataFormatter(); String cellValue = dataFormatter.formatCellValue(cell); map.put(cellNum,cellValue); } } rowList.add(map); } return rowList; } private static String fommartNum(String value){ try { if(isNumeric2(value) && value.contains(".")){ return Double.valueOf(value).intValue() +""; } }catch (Exception e){ return value; } return value; } public static boolean isNumeric2(String str) { return str != null && str.matches("-?\\d+(\\.\\d+)?"); } public static List> getExcelRowList(File multipartFile) throws IOException { //行List,也是最终要返回的List List> rowList=new ArrayList<>(); Workbook workbook=getExcelWorkBook(multipartFile); Sheet sheet = workbook.getSheetAt(0); if (sheet == null) { throw new IOException("创建Sheet失败!"); } //开始遍历行 for (int i=0;i<= sheet.getLastRowNum();i++){ Row row = sheet.getRow(i); //列List HashMap map = new HashMap<>(); //转换为List数组 for (int cellNum=0;cellNum<= row.getLastCellNum();cellNum++){ Cell cell = row.getCell(cellNum); if(ObjectUtils.isNotEmpty(cell)){ DataFormatter dataFormatter = new DataFormatter(); String cellValue = dataFormatter.formatCellValue(cell); System.out.println(cellValue); map.put(cellNum,cellValue); } } rowList.add(map); } return rowList; } public static void main(String[] args) throws IOException { getExcelRowList(new File("D:\\abc\\111111\\rtk账号导入模板 (1).xlsx")); } //获取WorkBook对象 private static Workbook getExcelWorkBook(MultipartFile multipartFile) throws IOException { InputStream inputStream=multipartFile.getInputStream(); String originalFileName=multipartFile.getOriginalFilename(); assert originalFileName != null; String fileType=originalFileName.substring(originalFileName.lastIndexOf(".")+1); if (fileType.equalsIgnoreCase("xls")) { //xls格式 return new HSSFWorkbook(inputStream); } else { //xlsx格式 return new XSSFWorkbook(inputStream); } } private static Workbook getExcelWorkBook(File multipartFile) throws IOException { InputStream inputStream = new FileInputStream(multipartFile); String originalFileName=multipartFile.getName(); assert originalFileName != null; String fileType=originalFileName.substring(originalFileName.lastIndexOf(".")+1); if (fileType.equalsIgnoreCase("xls")) { //xls格式 return new HSSFWorkbook(inputStream); } else { //xlsx格式 return new XSSFWorkbook(inputStream); } } }