注解使用案例
本案例基于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 朱志辉
*/
@Data
public 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;
@Data
public class SysDept {
/** 部门名称 */
private String deptName;
/** 负责人 */
private String leader;
}
测试类
/**
* 单个@Excel全部范例
*/
@Test
public 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());
}