根据文件路径获取excel文件,对文件进行解析
public static Map analysisExcel(String filepath) throws IOException { log.info(filepath); log.info(System.getProperty("user.dir")+ File.separator); log.info("服务器一====="+System.getProperty("user.dir")+ File.separator+"upload"+File.separator+filepath); log.info("服务器二====="+File.separator+"home"+File.separator+"bonc"+File.separator+"netaxtest"+File.separator+"upload"+File.separator+filepath); StringBuilder stringBuilder = new StringBuilder(); int fileNumList = 0; Map<String,Object> map = new HashMap<>(); //String encoding = "GBK"; //获取服务器上的文件路径 //File excel = new File(System.getProperty("user.dir")+ File.separator+"upload"+File.separator+filepath);//根据文件路径获取对应的excel //获取本地文件路径 File excel = new File(System.getProperty("user.dir")+ File.separator+"upload"+File.separator+filepath); if (excel.isFile() && excel.exists()) { //判断文件是否存在 log.info("文件存在,已判断文件存在,进入excel解析阶段"); String[] split = excel.getName().split("\\."); //.是特殊字符,需要转义!!!!! Workbook wb=null; //根据文件后缀(xls/xlsx)进行判断 if ( "xls".equals(split[1])){ FileInputStream fis = new FileInputStream(excel); //文件流对象 wb = new HSSFWorkbook(fis); }else if ("xlsx".equals(split[1])){ FileInputStream fis = new FileInputStream(excel); wb = new XSSFWorkbook(fis); }else { return null; } int sheetCount = wb.getNumberOfSheets(); log.info("sheetCount文件有几个sheet========"+sheetCount); for(int i = 0;i<sheetCount;i++){ //开始解析 Sheet sheet = wb.getSheetAt(i);//读取sheet 0 Row r = sheet.getRow(0); //读取表头信息,进行循环保存 for (int j=0; j<r.getLastCellNum(); j++){ String cellData = (String) getCellFormatValue(r.getCell(j)); if(!ObjectUtils.isEmpty(cellData)){//过滤掉为null或“”的数据 if(stringBuilder.length()==0){ stringBuilder.append(cellData.replaceAll(" ", "")); }else{ stringBuilder.append(",").append(cellData.replaceAll(" ", "")); } } } fileNumList = fileNumList + sheet.getLastRowNum();//获取excel中数据的条数并进行相加 log.info("文件数据量fileNumList========"+fileNumList); log.info("文件表头stringBuilder========"+stringBuilder); //String sheetName = sheet.getSheetName();//sheet页名称 //int firstRowIndex = sheet.getFirstRowNum()+1; //第一行是列名,所以不读 //fileNumList.add(String.valueOf(sheet.getLastRowNum()));//获取行数 } } else { //找不到指定文件 log.info("未找到指定文件"); log.info(System.getProperty("user.dir")+ File.separator+"upload"+File.separator+filepath); } map.put("stringBuilder",stringBuilder);//该条数据的数据项 map.put("fileNumList",fileNumList);//数据条数 return map; }