Excel的导入导出抽取通用功能,简化大家对POI的操作,对实体对象进行简单的注解配置就可以完成导入导出,模板的使用更是可以让打造漂亮的Excle报表,从而使大家从重复的工作中解脱出来,更加关注与业务的处理.
14.1注解介绍
注解名 | 作用对象 |
描述 |
是否必须 |
Excel |
字段 |
对Excel字段的cell属性设置 |
是 |
ExcelCollection |
字段 |
对集合对象进行标记表示一对多导出 |
否 |
ExcelTarget |
实体 |
唯一标识(建议设置) |
否 |
ExcelIgnore |
字段 |
导出是忽略这个对应(避免无限循环) |
否 |
ExcelEntity |
字段 |
导出的对象,即关联属性 |
否 |
应用实例:
主要属性介绍
ExcelTarget: id设置导出Excel的ID,字段可以根据ID判断是否需要导出;
Excel|ExcelEntity|ExcelCollection:exportName设置导出的名称显示在Excel的表头
同时可以填写如课程_courseEnity这样只有在导出CourseEntity这个对象的时候才导出,不标记ID视为都导出
Excel| ExcelCollection:orderNum设置这个字段的顺序,既所在的列数,默认是按照字段的顺序排序
Eexcel|exportConvertSign,Excel| importConvertSign,Excel|imExConvert这三个功能都是Excel注解的属性,他们的作用也是相似,就是你对直接重数据拿出的数据进行处理,即自定义处理函数,第一个在导出时使用,第二个导入时使用,如果导入导出都要使用可以直接使用第三个,默认是0不使用设置为1就使用例子
Sex这个大家经常用,一般数据是0,1但是显示需要男女
这样我们在导入导出都使用我们自己定义的函数而不是get,set
自定义函数的规则是普通的get,set函数前面加convert
Excel|exportType导出类型1是文本 2是图片,3是函数默认是文本
当导出图片时我们最好使用exportFieldWidth和exportFieldHeight设置列的高和宽
导出工具类ExcelImportUtil
提供两个函数,都是List返回集合
1.处理文件
public static Collection>importExcel(File file, Class> pojoClass,
ImportParamsparams) {}
2.处理流
public staticCollection>importExcelByIs(InputStreaminputstream,
Class>pojoClass, ImportParams params){}
导入参数设置ImportParams
根据我们导入的模板进行参数设置
现在我们以课程为例进行导入先看下模板
ImportParams|titleRows表格标题行数,默认0我们没有标题所以也是0
ImportParams|secondTitleRows这个就是表头列数,我们这里有2列所以设置为2
ImportParams|keyIndex主键列,面向一对多,比如课程对学生,我们的课程名称就是主键,所以这个keyIndex就是0
ImportParams|needSave是否需要保存,默认不需要
ImportParams|saveUrl如果保存的上传的Excel保存的路径,默认是如TestEntity这个类保存路径就是upload/excelUpload/Test/yyyyMMddHHmss_*****保存名称上传时间_五位随机数
例子:课程的导入
步骤一对需要导入的对象进行注解
步骤二,添加上传页面
步骤三:后台进行接收处理函数
根据我们的模板我们创建相应的对象如:
然后调用Util就可以返回我们需要的list的,之后进行处理就可以了
导入就完成了