注解介绍

@Excels 不可单独使用,@Excels的使用均依赖于注解@Excel, 解耦合可进行读取Model的属性,作为单元格表格属性

注解使用案例

实现效果

image.png

代码详情

Model基本类

  1. package cn.zzhardy.utils.poi.test.example;
  2. import cn.zzhardy.annotation.Excel;
  3. import cn.zzhardy.annotation.Excel.FunctionType;
  4. import cn.zzhardy.annotation.Excels;
  5. import lombok.Data;
  6. @Data
  7. public class SysUser {
  8. @Excel(name = "登录名称", sort = 1)
  9. private String userName;
  10. @Excel(name = "用户名称", sort = 2)
  11. private String nickName;
  12. @Excels({
  13. @Excel(name = "部门名称", sort = 3, targetAttr = "deptName", type = FunctionType.EXPORT),
  14. @Excel(name = "部门负责人", sort = 4, horizontalMergeNum = 3, targetAttr = "leader", type = FunctionType.EXPORT, titleBackground = "217,225,242")
  15. })
  16. private SysDept dept;
  17. }
  1. import lombok.Data;
  2. @Data
  3. public class SysDept {
  4. /** 部门名称 */
  5. private String deptName;
  6. /** 负责人 */
  7. private String leader;
  8. }

测试类

  1. /**
  2. * @Excels设置范例
  3. */
  4. @Test
  5. public void createMoreExcels() {
  6. List<SysUser> list = new ArrayList<>();
  7. SysUser sysUser = new SysUser();
  8. SysDept sysDept = new SysDept();
  9. sysDept.setDeptName("测试部门");
  10. sysDept.setLeader("测试部门领导");
  11. sysUser.setDept(sysDept);
  12. sysUser.setNickName("n昵称");
  13. sysUser.setUserName("dsds");
  14. list.add(sysUser);
  15. list.add(sysUser);
  16. list.add(sysUser);
  17. list.add(sysUser);
  18. list.add(sysUser);
  19. ExcelCenter<SysUser> util = new ExcelCenter<>(SysUser.class);
  20. AjaxResult form = util.exportExcel(list, "form");
  21. System.out.println(form.toString());
  22. }