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()方法):

原文地址:https://www.cnblogs.com/HigginCui/p/5785361.html