接口:
1 /** 2 * 3 * Description: 导入excel表 4 * @param map 5 * @param request 6 * @param session 7 * @return 8 * @author shiqianyu 9 * @throws Exception 10 * @Data 2018年3月12日 下午2:40:52 11 */ 12 @RequestMapping("/importExcelData") 13 public ModelAndView importExcelData(ModelMap map,HttpServletRequest request,HttpSession session,@RequestParam(value = "file", required = true)MultipartFile multfile) throws Exception{ 14 //获取页面信息 15 Map<String, String> pageCrawlValue = StringUtil.getArrayValue(request.getParameterMap()); 16 pageCrawlValue.put("CRAWLRESULTPATH", pageCrawlValue.get("CRAWLRESULTPATH")+File.separator+pageCrawlValue.get("PAGECRAWLNAME")); 17 PageCrawlTaskManage pageCrawlTaskManage = new PageCrawlTaskManage(); 18 pageCrawlTaskManage.setRegx(pageCrawlValue.get("PageRegx")); 19 pageCrawlTaskManage.setPage_prdfix(pageCrawlValue.get("PAGE_PRDFIX")); 20 pageCrawlTaskManage.setCtCycle(pageCrawlValue.get("CTCYCLE")); 21 pageCrawlTaskManage.setCrawlResultPath(pageCrawlValue.get("CRAWLRESULTPATH")); 22 pageCrawlTaskManage.setProxyDeployId(pageCrawlValue.get("PROXYID")); 23 pageCrawlTaskManage.setCrawlIntervalTime(Integer.valueOf(pageCrawlValue.get("CRAWL_INTERVAL_TIME"))); 24 pageCrawlTaskManage.setPageCrawlName(pageCrawlValue.get("PAGECRAWLNAME")); 25 pageCrawlTaskManage.setIsDrill(pageCrawlValue.get("isDrill")); 26 pageCrawlTaskManage.setCtCycleUnit(pageCrawlValue.get("CTCYCLEUNIT")); 27 pageCrawlTaskManage.setDataSourceId(pageCrawlValue.get("DATASOURCEID")); 28 pageCrawlTaskManage.setPage_start(pageCrawlValue.get("PAGE_START")); 29 pageCrawlTaskManage.setPage_end(pageCrawlValue.get("PAGE_END")); 30 pageCrawlTaskManage.setDescribe(pageCrawlValue.get("describe")); 31 pageCrawlTaskManage.setThreadCount(pageCrawlValue.get("CTTHREADCOUNT")); 32 pageCrawlTaskManage.setPage_suffix(pageCrawlValue.get("PAGE_SUFFIX")); 33 34 int startRow = Integer.parseInt(pageCrawlValue.get("startRow"))-1;//导入excel 起始行号 -3 35 int endRow = Integer.parseInt(pageCrawlValue.get("endRow"))-1; //导入excel 结束行号 -3 36 int column = Integer.parseInt(pageCrawlValue.get("column"))-1; //导入 excel指定的列号 -1 37 38 //获取页码后缀 39 List<String> suffixs = new ArrayList<String>(); 40 41 42 //检查文件 43 ExcelData.checkFile(multfile); 44 //获得Workbook工作薄对象 45 Workbook workbook = ExcelData.getWorkBook(multfile); 46 //创建返回对象,把每行中的值作为一个数组,所有行作为一个集合返回 47 List<String[]> list = new ArrayList<String[]>(); 48 if(workbook != null){ 49 for(int sheetNum = 0;sheetNum < workbook.getNumberOfSheets();sheetNum++){ 50 //获得当前sheet工作表 51 Sheet sheet = workbook.getSheetAt(sheetNum); 52 if(sheet == null){ 53 continue; 54 } 55 //获得当前sheet的开始行 56 int firstRowNum = startRow; 57 //获得当前sheet的结束行 58 int lastRowNum = endRow; 59 //循环行 60 for(int rowNum = firstRowNum;rowNum <= lastRowNum;rowNum++){ //firstRowNum+1; 61 //获得当前行 62 Row row = sheet.getRow(rowNum); 63 if(row == null){ 64 continue; 65 } 66 //获得当前行的开始列 67 int firstCellNum = row.getFirstCellNum(); 68 //获得当前行的列数 69 int lastCellNum = row.getLastCellNum(); 70 String[] cells = new String[row.getLastCellNum()]; 71 //循环当前行 72 for(int cellNum = firstCellNum; cellNum < lastCellNum;cellNum++){ 73 if(cellNum==column){ 74 Cell cell = row.getCell(cellNum); 75 cells[cellNum] = ExcelData.getCellValue(cell); 76 } 77 78 } 79 list.add(cells); 80 } 81 } 82 } 83 84 85 for(int i= 0;i<list.size();i++){//startRow 86 String[] arr=null; 87 arr = list.get(i);//[张飞, As255, c2, d2, f2] 88 if(arr!=null){ 89 //遍历列 90 for(int j=0;j<arr.length;j++){ 91 if(j==column){ 92 suffixs.add(arr[j]);//As255 93 } 94 } 95 } 96 } 97 98 map.put("pageCrawlTaskManage", pageCrawlTaskManage); 99 map.put("times",suffixs); 100 return new ModelAndView("crawl/CrawlTaskToExcel"); 101 }