工作中是否会遇到导入读取一些特定的字段比如
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:14
更新时间:2022-09-04 22:15
更新时间:2022-09-04 22:15