在需要被导入导出的实体类属性添加@Excel注解。
支持参数如下:
注解参数说明
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| sort | int | Integer.MAX_VALUE | 导出时在excel中排序,值越小越靠前 |
| name | String | 空 | 导出到Excel中的名字 |
| dateFormat | String | 空 | 日期格式, 如: yyyy-MM-dd |
| dictType | String | 空 | 如果是字典类型,请设置字典的type值 (如: sys_user_sex) |
| readConverterExp | String | 空 | 读取内容转表达式 (如: 0=男,1=女,2=未知) |
| separator | String | , | 分隔符,读取字符串组内容 |
| scale | int | -1 | BigDecimal 精度 默认:-1(默认不开启BigDecimal格式化) |
| roundingMode | int | BigDecimal.ROUND_HALF_EVEN | BigDecimal 舍入规则 默认:BigDecimal.ROUND_HALF_EVEN |
| celltype | Enum | Type.STRING | 导出类型(0数字 1字符串 2图片) |
| height | String | 14 | 导出时在excel中每个列的高度 单位为字符 |
| width | String | 16 | 导出时在excel中每个列的宽 单位为字符 |
| suffix | String | 空 | 文字后缀,如% 90 变成90% |
| defaultValue | String | 空 | 当值为空时,字段的默认值 |
| prompt | String | 空 | 提示信息 |
| combo | String | Null | 设置只能选择不能输入的列内容 |
| headerBackgroundColor | Enum | IndexedColors.GREY_50_PERCENT | 导出列头背景色IndexedColors.XXXX |
| headerColor | Enum | IndexedColors.WHITE | 导出列头字体颜色IndexedColors.XXXX |
| backgroundColor | Enum | IndexedColors.WHITE | 导出单元格背景色IndexedColors.XXXX |
| color | Enum | IndexedColors.BLACK | 导出单元格字体颜色IndexedColors.XXXX |
| targetAttr | String | 空 | 另一个类中的属性名称,支持多级获取,以小数点隔开 |
| isStatistics | boolean | false | 是否自动统计数据,在最后追加一行统计数据总和 |
| type | Enum | Type.ALL | 字段类型(0:导出导入;1:仅导出;2:仅导入) |
| align | Enum | HorizontalAlignment.CENTER | 导出对齐方式HorizontalAlignment.XXXX |
| handler | Class | ExcelHandlerAdapter.class | 自定义数据处理器 |
| args | String[] | {} | 自定义数据处理器参数 |
导出实现流程
1、前端调用封装好的方法$.table.init,传入后台exportUrl
var options = {
exportUrl: prefix + "/export",
columns: [{
field: 'id',
title: '主键'
},
{
field: 'name',
title: '名称'
}]};
$.table.init(options);2、添加导出按钮事件
<a class="btn btn-warning" onclick="$.table.exportExcel()"> <i class="fa fa-download"></i> 导出 </a>
3、在实体变量上添加@Excel注解
@Excel(name = "用户序号", prompt = "用户编号") private Long userId; @Excel(name = "用户名称") private String userName; @Excel(name = "用户性别", readConverterExp = "0=男,1=女,2=未知") private String sex; @Excel(name = "用户头像", cellType = ColumnType.IMAGE) private String avatar; @Excel(name = "帐号状态", dictType = "sys_normal_disable") private String status; @Excel(name = "最后登陆时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private Date loginDate;
4、在Controller添加导出方法
@PostMapping("/export")@ResponseBodypublic AjaxResult export(User user){
List<User> list = userService.selectUserList(user);
ExcelUtil<User> util = new ExcelUtil<User>(User.class);
return util.exportExcel(list, "用户数据");
}

0条评论
点击登录参与评论