快速解析excel

背景

如果你经常使用excel,想将excel的数据快速插入数据库,或者读取excel的内容,做一些逻辑处理。那么本文可以帮助你。

采用poi jar

直接将文件转为文件流,后续获取流来操作数据。

java 复制代码
 public Integer doUploadMetaQ(InputStream inputStream) {
        List<RiskAppBasicDataDO> riskAppBasicDataDOList = new ArrayList<>();
        try {
            Workbook workbook = new XSSFWorkbook(inputStream);
            Sheet sheet = workbook.getSheetAt(RiskAppBasicDataConstant.ZERO);
            for (int i = 1; i < sheet.getPhysicalNumberOfRows(); i++) {
                RiskAppBasicDataDO riskAppBasicDataDO = new RiskAppBasicDataDO(StringUtils.EMPTY);
                Row row = sheet.getRow(i);

                riskAppBasicDataDO.setAppName(row.getCell(0)==null?"":row.getCell(0).toString());
                riskAppBasicDataDO.setServiceType(ServiceTypeEnum.METAQ.getValue());
                riskAppBasicDataDO.setDetailType(row.getCell(2)==null?"":row.getCell(2).toString());
                riskAppBasicDataDO.setServiceName(row.getCell(1)==null?"":row.getCell(1).toString());
                riskAppBasicDataDO.setNamespace(row.getCell(3)==null?"":row.getCell(3).toString());
                log.info("appName is {} ",riskAppBasicDataDO.getAppName());
                riskAppBasicDataDOList.add(riskAppBasicDataDO);
            }

        } catch (IOException e) {
            e.printStackTrace();
        }
        if (CollectionUtils.isEmpty(riskAppBasicDataDOList)) return RiskAppBasicDataConstant.ZERO;
        return riskAppBasicDataDao.batchInsert(riskAppBasicDataDOList);
    }
相关推荐
知其然亦知其所以然5 分钟前
JVM社招面试题:队列和栈是什么?有什么区别?我在面试现场讲了个故事…
java·后端·面试
harmful_sheep12 分钟前
Spring 为何需要三级缓存解决循环依赖,而不是二级缓存
java·spring·缓存
星辰大海的精灵14 分钟前
如何确保全球数据管道中的跨时区数据完整性和一致性
java·后端·架构
大大。16 分钟前
van-tabbar-item选中active数据变了,图标没变
java·服务器·前端
nc_kai19 分钟前
Flutter 之 每日翻译 PreferredSizeWidget
java·前端·flutter
Codebee29 分钟前
OneCode:AI时代的先锋——注解驱动技术引领开发范式变革
java
勤奋的知更鸟30 分钟前
Java 编程之状态模式
java·开发语言·状态模式
架构个驾驾40 分钟前
深入浅出MyBatis-Plus实战指南
java
SimonKing44 分钟前
解锁万能文件内容分析工具:Apache Tika
java·后端·程序员