excel读取

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>*/

}

 

posted @ 2018-04-25 15:20  百合叶  阅读(62)  评论(0)    收藏  举报