• 读取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;
    }
  • 相关阅读:
    产品设计步骤
    浅谈公司经营的事业发展线
    项目经理的眼:一切都是项目
    IT软件的编程方向
    后记:IT软件人员学习的书籍
    12、产品经理要阅读的书籍
    11、项目经理要阅读的书籍
    7、项目活动的开展
    6、项目组人员绩效考核
    5、项目组人员培训
  • 原文地址:https://www.cnblogs.com/gnpugongying/p/15127844.html
Copyright © 2020-2023  润新知