注解使用案例

本案例基于L**ombokJunit测试, @Data**为Lambok注解, @Excel配置相应的属性即可进行实现相应效果

生成效果

image.png

Model基本类

  1. package cn.zzhardy.utils.poi.test.example;
  2. import java.util.Date;
  3. import cn.zzhardy.annotation.Excel;
  4. import cn.zzhardy.annotation.Excel.ColumnType;
  5. import cn.zzhardy.annotation.Excel.FunctionType;
  6. import cn.zzhardy.annotation.Excels;
  7. import lombok.Data;
  8. /**
  9. * 日志信息
  10. * @author 朱志辉
  11. */
  12. @Data
  13. public class SysLog {
  14. @Excel(name = "日志序号", sort = 1, prompt="测试")
  15. private Integer jobLogId;
  16. @Excel(name = "日志信息", sort = 2)
  17. private String jobMessage;
  18. @Excel(name = "执行状态", valueSubstitution = "0=正常,1=失败", sort = 4, fontColor = "0=#ff0000,1=#66ccff", combo = {"正常", "失败"})
  19. private int status;
  20. @Excel(name = "异常信息", sort = 3)
  21. private String exceptionInfo;
  22. /** 部门对象 */
  23. @Excels({
  24. @Excel(name = "部门名称", sort = 6, targetAttr = "deptName"),
  25. @Excel(name = "部门负责人", sort = 7, horizontalMergeNum = 3, targetAttr = "leader", titleBackground = "217,225,242")
  26. })
  27. private SysDept dept;
  28. @Excel(name = "创建日期", dateFormat = "yyyy-MM-dd", sort = 5)
  29. private Date createDate;
  30. @Excel(name = "失败报警图片", sort = 8, cellType = ColumnType.IMAGE, titleBackground = "217, 225, 242")
  31. private String errorImageUrl;
  32. }
  1. import lombok.Data;
  2. @Data
  3. public class SysDept {
  4. /** 部门名称 */
  5. private String deptName;
  6. /** 负责人 */
  7. private String leader;
  8. }

测试类

  1. /**
  2. * 单个@Excel全部范例
  3. */
  4. @Test
  5. public void createByExcel() {
  6. List<SysLog> list = new ArrayList<>();
  7. for (int i = 0; i < 10; i++) {
  8. SysLog sysLog = new SysLog();
  9. sysLog.setExceptionInfo("测试");
  10. sysLog.setJobLogId(i);
  11. sysLog.setJobMessage("ce111");
  12. if (i % 2 == 0) {
  13. sysLog.setStatus(1);
  14. } else {
  15. sysLog.setStatus(0);
  16. }
  17. sysLog.setCreateDate(new Date());
  18. String imageUrl = UrlUtils.projectUrl() + "webapp/images/timg.jpg";
  19. sysLog.setErrorImageUrl(imageUrl);
  20. // 部门信息
  21. SysDept sysDept = new SysDept();
  22. sysDept.setDeptName("测试部门" + i);
  23. sysDept.setLeader("测试部门领导" + i);
  24. sysLog.setDept(sysDept);
  25. list.add(sysLog);
  26. }
  27. ExcelCenter<SysLog> util = new ExcelCenter<>(SysLog.class);
  28. AjaxResult form = util.exportExcel(list, "form");
  29. System.out.println(form.toString());
  30. }