注解使用案例
本案例基于L**ombok和Junit测试, @Data**为Lambok注解, @Excel配置相应的属性即可进行实现相应效果
生成效果
Model基本类
package cn.zzhardy.utils.poi.test.example;import java.util.Date;import cn.zzhardy.annotation.Excel;import cn.zzhardy.annotation.Excel.ColumnType;import cn.zzhardy.annotation.Excel.FunctionType;import cn.zzhardy.annotation.Excels;import lombok.Data;/*** 日志信息* @author 朱志辉*/@Datapublic class SysLog {@Excel(name = "日志序号", sort = 1, prompt="测试")private Integer jobLogId;@Excel(name = "日志信息", sort = 2)private String jobMessage;@Excel(name = "执行状态", valueSubstitution = "0=正常,1=失败", sort = 4, fontColor = "0=#ff0000,1=#66ccff", combo = {"正常", "失败"})private int status;@Excel(name = "异常信息", sort = 3)private String exceptionInfo;/** 部门对象 */@Excels({@Excel(name = "部门名称", sort = 6, targetAttr = "deptName"),@Excel(name = "部门负责人", sort = 7, horizontalMergeNum = 3, targetAttr = "leader", titleBackground = "217,225,242")})private SysDept dept;@Excel(name = "创建日期", dateFormat = "yyyy-MM-dd", sort = 5)private Date createDate;@Excel(name = "失败报警图片", sort = 8, cellType = ColumnType.IMAGE, titleBackground = "217, 225, 242")private String errorImageUrl;}
import lombok.Data;@Datapublic class SysDept {/** 部门名称 */private String deptName;/** 负责人 */private String leader;}
测试类
/*** 单个@Excel全部范例*/@Testpublic void createByExcel() {List<SysLog> list = new ArrayList<>();for (int i = 0; i < 10; i++) {SysLog sysLog = new SysLog();sysLog.setExceptionInfo("测试");sysLog.setJobLogId(i);sysLog.setJobMessage("ce111");if (i % 2 == 0) {sysLog.setStatus(1);} else {sysLog.setStatus(0);}sysLog.setCreateDate(new Date());String imageUrl = UrlUtils.projectUrl() + "webapp/images/timg.jpg";sysLog.setErrorImageUrl(imageUrl);// 部门信息SysDept sysDept = new SysDept();sysDept.setDeptName("测试部门" + i);sysDept.setLeader("测试部门领导" + i);sysLog.setDept(sysDept);list.add(sysLog);}ExcelCenter<SysLog> util = new ExcelCenter<>(SysLog.class);AjaxResult form = util.exportExcel(list, "form");System.out.println(form.toString());}
