package com.csf.weui.repository; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.Set; import javax.ws.rs.FormParam; import javax.ws.rs.POST; import javax.ws.rs.Path; import org.apache.commons.lang3.StringUtils; import org.apache.log4j.Logger; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import com.aug3.sys.rs.response.RespType; import com.google.common.collect.Lists; /** * @author fenglei.ma 2017/11/21 13:34 */ public class UploadRepository { private static final Logger logger = Logger.getLogger(UploadRepository.class); public String analysis(){ try{ String fileName = "C:\Users\fenglei.ma\Desktop\上传\上传测试文件\announcement_fund表主键.xls"; File file = new File(fileName); InputStream is = new FileInputStream(file); boolean isExcel2003 = fileName.toLowerCase().endsWith("xls")?true:false; Map<Integer, List<String>> readFromExcel = readFromExcel(isExcel2003, is); logger.info(readFromExcel); }catch(Exception e){ e.printStackTrace(); logger.error(e, e); } return null; } @SuppressWarnings({"deprecation", "resource" }) public Map<Integer,List<String>> readFromExcel(boolean isExcel2003, InputStream in) throws IOException{ Workbook readWorkBook=null; // 判断文件是2003前的版本还是2007的版本,然后对应调用HSSF或XSSF来读取。 if(isExcel2003){ readWorkBook=new HSSFWorkbook(in); logger.info("-> HSSFWorkbook"); }else{ readWorkBook=new XSSFWorkbook(in); logger.info("-> XSSFWorkbook"); } Map<Integer,List<String>> map=new LinkedHashMap<>(); Iterator<Sheet> sheet_iterator = readWorkBook.iterator(); int physicalNumberOfCells = 0;//多少列 for(;sheet_iterator.hasNext();){ Sheet readSheet = sheet_iterator.next(); Iterator<Row> iterator = readSheet.iterator(); // 遍历每一行 for(;iterator.hasNext();){ List<String> list= Lists.newArrayList(); Row row = iterator.next(); if(physicalNumberOfCells == 0){ physicalNumberOfCells = row.getPhysicalNumberOfCells(); } Cell cell = row.getCell(0); if(cell == null){continue;} cell.setCellType(Cell.CELL_TYPE_STRING); Integer row_number = row.getRowNum(); for(int k=0;k<physicalNumberOfCells;k++){ // 循环遍历每一列 cell = row.getCell(k); if(cell == null){ list.add(null); continue; } cell.setCellType(Cell.CELL_TYPE_STRING); String cell_value = cell.getStringCellValue(); // 得到值 list.add(cell_value); } map.put(row_number,list); } } return map; } /* <!-- excel --> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.15</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.15</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml-schemas</artifactId> <version>3.15</version> </dependency> <dependency> <groupId>org.apache.xmlbeans</groupId> <artifactId>xmlbeans</artifactId> <version>2.6.0</version> </dependency>*/ }