zoukankan      html  css  js  c++  java
  • 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>*/
    
    }
  • 相关阅读:
    EasyDSS功能简介视频直播、直播鉴权(如何完美将EasyDSS过渡到新版)
    EasyNVR前端构建之输入框样式的调整
    NVR硬件录像机web无插件播放方案(支持取特定时间段视频流)
    Windows操作系统远程Linux服务器传输文件方法(以EasyDSS云平台、EasyNVR上传部署为例)
    零基础实现摄像头的全平台直播 (二)公网直播的实现
    海康、大华NVR硬件录像机录像无插件全平台访问实现播放时间轴实现
    直播与虚拟直播
    CF585EPresent for Vitalik the Philatelist【莫比乌斯反演,狄利克雷前缀和】
    AT4519[AGC032D]Rotation Sort【dp】
    P5110块速递推【特征方程,分块】
  • 原文地址:https://www.cnblogs.com/xiaolei2017/p/8944919.html
Copyright © 2011-2022 走看看