跳到主要内容

Excel导入介绍

有导出就有导入,基于注解的导入导出,配置配置上是一样的,只是方式反过来而已,比如类型的替换 导出的时候是1替换成男,2替换成女,导入的时候则反过来,男变成1 ,女变成2,时间也是类似 导出的时候date被格式化成 2017-8-25 ,导入的时候2017-8-25被格式成date类型 下面说下导入的基本代码,注解啥的都是上面讲过了,这里就不累赘了

  @Test
public void test2() {
ImportParams params = new ImportParams();
params.setTitleRows(1);
params.setHeadRows(1);
long start = new Date().getTime();
List<MsgClient> list = ExcelImportUtil.importExcel(
new File(PoiPublicUtil.getWebRootPath("import/ExcelExportMsgClient.xlsx")),
MsgClient.class, params);
System.out.println(new Date().getTime() - start);
System.out.println(list.size());
System.out.println(ReflectionToStringBuilder.toString(list.get(0)));
}

基本是写法也很简单,ImportParams 参数介绍下

属性类型默认值功能
titleRowsint0表格标题行数,默认0
headRowsint1表头行数,默认1
startRowsint0字段真正值和列标题之间的距离 默认0
keyIndexint0主键设置,如何这个cell没有值,就跳过 或者认为这个是list的下面的值 这一列必须有值,不然认为这列为无效数
startSheetIndexint0开始读取的sheet位置,默认为0
sheetNumint1上传表格需要读取的sheet 数量,默认为1
needSavebooleanfalse是否需要保存上传的Excel
needVerfiybooleanfalse是否需要校验上传的Excel
saveUrlString"upload/excelUpload"保存上传的Excel目录,默认是 如 TestEntity这个类保存路径就是 upload/excelUpload/Test/yyyyMMddHHmss****** 保存名称上传时间*五位随机数
verifyHanlderIExcelVerifyHandlernull校验处理接口,自定义校验
lastOfInvalidRowint0最后的无效行数,不读的行数
readRowsint0手动控制读取的行数
importFieldsString[]null导入时校验数据模板,是不是正确的Excel
keyMarkString":"Key-Value 读取标记,以这个为Key,后面一个Cell 为Value,多个改为ArrayList
readSingleCellbooleanfalse按照Key-Value 规则读取全局扫描Excel,但是跳过List读取范围提升性能 仅仅支持titleRows + headRows + startRows 以及 lastOfInvalidRow
dataHanlderIExcelDataHandlernull数据处理接口,以此为主,replace,format都在这后面