Java解析excel文件

public static List<User>  getFile() {
        List<User> list = null;
        
        String excelPath = "D:\\Users\\Desktop\\file_demo.xlsx";

        try {
            //String encoding = "GBK";
            File excel = new File(excelPath);
            if (excel.isFile() && excel.exists()) {

                String[] split = excel.getName().split("\\.");
                Workbook wb;
                //根据文件后缀(xls/xlsx)进行判断
                if ("xls".equals(split[1])) {
                    FileInputStream fis = new FileInputStream(excel);
                    wb = new HSSFWorkbook(fis);
                } else if ("xlsx".equals(split[1])) {
                    wb = new XSSFWorkbook(excel);
                } else {
                    System.out.println("文件类型错误!");
                    return null;
                }

                //开始解析
                Map<String, User> maps = new HashMap<>();
                for (int j = 0; j < 9; j++) {
                    Sheet sheet = wb.getSheetAt(j);
                    User task = null;
                    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
                    log.info("---------jjj = {}", j);
                    for (int i = 0; i < sheet.getPhysicalNumberOfRows(); i++) {
                        Row row = sheet.getRow(i);
                        if (row != null) {

                            String lineB = row.getCell(1).getStringCellValue();
                            Date endTime = simpleDateFormat.parse(lineB.replaceFirst(" ", ""));

                            String lineC = row.getCell(2).getStringCellValue();
                            log.info(" i = {}, endTime = {}, lineC = {}", i, endTime, lineC );

                            task = maps.get(lineC );
                            if (null == task) {
                                task = new User();
                                task.setStatus(ConsoleQueryAgoraTaskStatusEnum.WAITING.code());
                                task.setAge(lineC );
                                task.setCreateTime(endTime);
                                task.setVersion(1);
                                maps.put(lineC , task);
                            } else {
                                if (endTime.compareTo(task.getCreateTime()) == 1) {
                                    task.setCreateTime(endTime);
                                    maps.put(lineC , task);
                                }
                            }


                        }
                    }
                }

                list = maps.values().stream().collect(Collectors.toList());

            } else {
                System.out.println("找不到指定的文件");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

        return list;
    }



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值