@Excel注解是作用到Filed上面,是对Excel一列的一个描述,这个注解是必须要的注解,其属性如下:
属性 | 类型 | 默认值 | 功能 |
---|---|---|---|
name | String | null | 对应Excel的列名 |
orderNum | String | “0” | 列的排序 |
format | String | ” “ | 时间格式化,相当于同时设置exportFormat和importFormat |
exportFormat | String | " " | 导出时的时间格式 |
importFormat | String | " " | 导入时的时间格式 |
type | int | 1 | 导出类型:1是文本(默认),2是图片,3是函数,10是数字 |
replace | String[] | {} | 值的替换,replace = {"男_1", "女_2"} 将值为1的替换为男 |
needMerge | boolean | false | 是否需要纵向合并单元格(用于list创建的多个row) |
numFormat | String | " " | 数字格式化,使用对象DecimalFormat |
suffix | String | " " | 文字后缀 |
width | double | 10 | 列宽 |
height | double | 10 | 行高,后期打算统一使用@ExcelTarget的height,这个会被废弃 |
savePath | String | “/upload/” | 导入文件保存路径,默认是”target/classes/upload/类名“ |
isStatistics | boolean | false | 自动统计数据,在行尾进行统计,会吞没异常 |
isImportField | boolean | false | 导入Excel时,对Excel中的字段进行校验,如果没有该字段,导入失败 |
isColumnHidden | boolean | false | 导出隐藏列 |
databaseFormat | String | “yyyyMMddHHmmss” | 导出时间设置,如果字段是data类型则不需要设置,数据库如果是String类型,这个需要设置这个数据库格式,用来转换时间格式输出 |
isWrap | boolean | true | 是否换行及支持\n |
mergeRely | int[] | {} | 合并单元格依赖关系,比如第二列合并是基于第一列 |
imageType | int | 1 | 导出类型1:冲file读取,2:从数据库中读取,默认是文件,导入也是一样 |
@ExcelCollection 注解表示一个集合,主要针对一对多的导出
比如一个老师对应多个科目,科目就可以用集合表示,作用在一个类型是List的属性上面,属性如下:
属性 | 类型 | 默认值 | 功能 |
---|---|---|---|
name | String | null | 对应集合的列名 |
orderNum | String | “0” | 排序 |
type | Class | ArrayList.class | 导入时创建对象时使用 |
作用于最外层的对象,描述这个对象的id,以便支持一个对象可以针对不同导出做出不同处理
@ExcelEntity注解表示一个继续深入导出的实体,是作用一个类型为实体的属性上面
属性 | 类型 | 默认值 | 功能 |
---|---|---|---|
titleRows | int | 0 | 表格标题行数 |
headRows | int | 1 | 表头行数 |
startRows | int | 0 | 字段值与列标题之间的距离 |
keyIndex | int | 0 | 主键 |
startSheetIndex | int | 0 | 开始读取的sheet位置 |
sheetNum | int | 1 | 上传表格需要读取的sheet数量 |
needSave | boolean | false | 是否需要保存上传的Excel |
needVerfiy | boolean | false | 是否需要校验上传的Excel |
verifyHanlder | IExcelVerifyHandler | null | 校验处理接口自定义校验 |
importFields | String[] | null | 导入时校验数据模板,是不是正确的Excel |