zoukankan      html  css  js  c++  java
  • 读取excel文件后,将一行数据封装成一个对象,多行返回一个map对象即可

    读取excel文件后,将一行数据封装成一个对象,多行返回一个map对象即可

    /**
    * 读取excel文件后,将一行数据封装成一个对象,多行返回一个map对象即可
    * @param path 输出的文件路径
    * @return
    */
    public static Map<Integer,List<String>> readUrl(String path){
    //想要读取的url地址
    URL url=null;
    XSSFWorkbook xssfWorkbook = null;
    Map<Integer,List<String>> map=new HashMap <Integer, List <String>>();
    InputStream inputStream = null;
    Workbook workbook = null;
    try {
    url=new URL(path);
    URLConnection conn = url.openConnection();
    inputStream = conn.getInputStream();
    workbook = WorkbookFactory.create(inputStream);
    inputStream.close();
    //工作表对象
    Sheet sheet = workbook.getSheetAt(0);
    //获取最后一行是第几行
    int lastRowNum = sheet.getLastRowNum()+1;
    //由于第一行是字段名称,不做读取,后面建表的时候生成字段,因此这里从第二行开始读取,注意第二行的下标是1
    for (int i = 0; i < lastRowNum; i++) {
    //获取行
    Row row = sheet.getRow(i);
    //进行行的非空判断后,在遍历,避免空指针
    if(row != null){
    //实例化一个List集合,用于存放一行读取出来的所有单元数据
    List<String> list = new ArrayList<>();
    //遍历行
    for (Cell cell : row) {
    String value="";
    //获得单元格,对单元格进行非空判断
    if(cell != null){
    //设置单元格数据的类型为字符串,这样即使表中数据有其他类型,也不用考虑类型转换,考虑不周有可能发生的类型转换异常
    cell.setCellType(1);
    //获取单元格的数据
    value = cell.getStringCellValue();
    }
    //将每个单元格数据加入List集合中
    //System.out.print(value+ ' ');
    list.add(value);
    }
    //每打印一行就换一行
    //System.out.println();
    //将读取出的每个行的数据封装成一个对象
    map.put(i,list);


    }
    }
    } catch (MalformedURLException e) {
    e.printStackTrace();
    } catch (IOException e) {
    e.printStackTrace();
    } catch (InvalidFormatException e) {
    e.printStackTrace();
    }


    return map;
    }
  • 相关阅读:
    SCCM 补丁更新 失误排错一例
    Oracle 远程连接 DB配置 连接命令
    反向代理服务器
    用JMF播放音频 例子
    HTML css兼容
    Java国际化
    JBPM 之介绍,使用
    Nginx内核优化引用
    Nginx 学习
    局域网访问VMware虚拟机中的Ubuntu
  • 原文地址:https://www.cnblogs.com/gnpugongying/p/15127844.html
Copyright © 2011-2022 走看看