工作中是否会遇到导入读取一些特定的字段比如
导入图片
Excel 中的委托方,代理方,日期,单号,或者尾部的身份证号,电话等等,需要我们统一入库,这些字段没有具体位置,只能特定计算
这里给出了一个全新的解决办法 key-value 导入方法
key 是要导入的字段名称比如 委托方: 就认为是一个要导入的字段,后面的一个cell就是起对应的值
比如委托方: 一众科技有限公司 这样导入进去就是 key委托方,value 一众科技有限公司
示例代码

@Test
    public void test() {
        try {
            ImportParams params = new ImportParams();
            params.setKeyMark(":");
            params.setReadSingleCell(true);
            params.setTitleRows(7);
            params.setLastOfInvalidRow(9);
            ExcelImportResult<Map> result = ExcelImportUtil.importExcelMore(
                    new File(PoiPublicUtil.getWebRootPath("import/业务委托单.xlsx")),
                    Map.class, params);
            for (int i = 0; i < result.getList().size(); i++) {
                System.out.println(result.getList().get(i));
            }
            Assert.assertTrue(result.getList().size() == 10);
            System.out.println(result.getMap());
        } catch (Exception e) {
            LOGGER.error(e.getMessage(),e);
        }
    }

需要设置两个或者一个值
params.setKeyMark(“:”); 判断一个cell是key的规则,可以自定义,默认就是 “:”
params.setReadSingleCell(true); 是否需要读取这种单独的sql
读取完毕后,通过result.getMap() 就可以拿到自己想要的值了比如上面的Excel读取到的map就是

{境内详细收货地址、联系人、电话:=1.3112345678E10, 委托方:=一众科技有限公司, 代理方:=上海一众金融信息服务有限公司, 委托单号:=XH-HZHY-20170504, 日期:=2017.5.4, 供应商交货方式:=, 合计:=, 境内交货方式:=, 指定收货人身份证号:=3.7082719880102099E17}

这样就比较方便的处理较为复杂的Excel导入了

文档更新时间: 2020-04-09 15:15   作者:admin