在需要被导入导出的实体类属性添加@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条评论
点击登录参与评论