• 05_Excel操作_03_模拟Web环境的Excel导入


    【思路简述】

    本文继续上一篇文章,上一篇中生成了“D://用户列表.xls”的excel文件,我们接下来将这个excel导入,然后显示在控制台上。

    工程什么的都同上一篇文章,只是在ExcelService.java中添加了一个inputExcel()的方法,如下:

    【ExcelService.java】

        @Test
        public void inputExcel(){
            File userExcel=new File("D:\用户列表.xls");
            try {
                FileInputStream fileInputStream =new FileInputStream(userExcel);
                //1.读取工作簿
                Workbook workbook=WorkbookFactory.create(userExcel);
                //2.读取工作表
                Sheet sheet=workbook.getSheetAt(0);
                //读取行
                if(sheet.getPhysicalNumberOfRows()>2){  //读取Excel的行数
                    //读取单元格,存入User对象中
                    User user =null;
                    Row row=null;
                    for(int i=2;i<sheet.getPhysicalNumberOfRows();i++){  //从第3行开始读取,前两行都是标题
                        //3.读取行
                        row=sheet.getRow(i);  //第i行
                        user=new User();
                        //4.读取单元格
                        Integer id=Integer.valueOf(row.getCell(0).getStringCellValue());
                        user.setId(id);
                        String name=row.getCell(1).getStringCellValue();
                        user.setName(name);
                        String sex=row.getCell(2).getStringCellValue();
                        user.setSex(sex);
                        String phone;
                        try {
                            phone =row.getCell(3).getStringCellValue();
                        } catch (Exception e) {
                            System.out.println("科学计数......");
                            //排除 Excel单元格科学计数的时候提取数据错误
                            double dPhone=row.getCell(3).getNumericCellValue();
                            //BigDecimal将科学计数方式的数值转化成一个正常的数值并转换成字符串
                            phone=BigDecimal.valueOf(dPhone).toString();
                        }
                        user.setPhone(phone);
                        
                        
                        String email=row.getCell(4).getStringCellValue();
                        user.setEmail(email);
                        
                        //正常的话在这里会有一句执行插入数据库的操作
                        System.out.println(user.toString());
                    }
                }
                workbook.close();
                fileInputStream.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

    【运行结果】

    在控制台上(对了,要在User.java中补充一个toString()方法):

  • 相关阅读:
    分布式系统理论基础
    分布式系统理论基础
    RPC框架实现
    分布式服务协调员zookeeper
    LSM Tree存储组织结构介绍
    协程 及 libco 介绍
    回顾2013——新的旅程
    从prototype beandefinition 谈 spring 的关闭流程和 prototype 的特性
    调研 中央空调 地暖 水暖
    物联网安全设计
  • 原文地址:https://www.cnblogs.com/HigginCui/p/5785361.html
Copyright © 2020-2023  润新知