5
Excel模板
填充后的Excel文件
代码调式
@GetMapping("/export")
public void export(@RequestParam Long id, HttpServletResponse response) {
/*try {
performancePersonalService.exportPerformancePersonal(response, id, this.getWorkContext());
} catch (Exception e) {
log.error("导出员工个人绩效时异常,原因为:" + e.getMessage());
}*/
WorkContext workContext = getWorkContext();
PerformancePersonalDetailsDTO performanceModel = performancePersonalService.getPerformanceById(id, workContext);
if (performanceModel == null) {
return;
}
PerformancePersonalExcelDTO performancePersonalExcelDTOS = ExcelUtil.convertExcelDto(performanceModel);
String fileName = String.format("%s_%s.xlsx", performanceModel.getSelfName(), performanceModel.getName());
try {
ByteArrayOutputStream stream = ExcelUtil.getPerformancePersonalFileStream(performancePersonalExcelDTOS);
//下载文件
WebUtil.downloadFile(response, fileName, stream);
} catch (Exception e) {
HRBizExpcetion.isTrue(true, "导出excel文件时异常,原因为: " + e.getMessage());
}
}
public static ByteArrayOutputStream getPerformancePersonalFileStream(PerformancePersonalExcelDTO item) throws IOException {
String templateFileName = getPerformancePersonalTemplateFullPath();
ByteArrayOutputStream stream = new ByteArrayOutputStream();
ExcelWriter excelWriter = EasyExcel.write(stream).withTemplate(templateFileName).build();
WriteSheet writeSheet = EasyExcel.writerSheet().build();
FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build();
if (Utils.isNotEmptyList(item.getKpis())) {
excelWriter.fill(item.getKpis(), fillConfig, writeSheet);
}
if (Utils.isNotEmptyList(item.getCores())) {
excelWriter.fill(item.getCores(), fillConfig, writeSheet);
}
Map<String, Object> map = item.getMap();
excelWriter.fill(map, writeSheet);
excelWriter.finish();
return stream;
}
## PerformancePersonalExcelDTO
@Getter
@FieldDefaults(level = AccessLevel.PRIVATE)
public class PerformancePersonalExcelDTO {
private Map<String, Object> map = new HashMap<>();
List<PerformancePersonalExcelKPIDTO> kpis = new ArrayList();
List<PerformancePersonalExcelCoreDTO> cores = new ArrayList();
/**
* 标题
*/
public void setTitle(String title) {
map.put("title", title);
}
/**
* 部门
*/
public void setDeptName(String deptName) {
map.put("deptName", deptName);
}
/**
* kpi自评分
*/
public void setKpiScoreSelfTotal(BigDecimal kpiScoreSelfTotal) {
map.put("kpiScoreSelfTotal", kpiScoreSelfTotal);
}
/**
* kpi上级评分
*/
public void setKpiLeaderScoreTotal(BigDecimal kpiLeaderScoreTotal) {
map.put("kpiLeaderScoreTotal", kpiLeaderScoreTotal);
}
/**
* 核心价值观自评分
*/
public void setCoreScoreSelfTotal(BigDecimal coreScoreSelfTotal) {
map.put("coreScoreSelfTotal", coreScoreSelfTotal);
}
/**
* 核心价值观上级评分
*/
public void setCoreLeaderScoreTotal(BigDecimal coreLeaderScoreTotal) {
map.put("coreLeaderScoreTotal", coreLeaderScoreTotal);
}
/**
* 直接上级评语
*/
public void setLeaderComment(String leaderComment) {
map.put("leaderComment", leaderComment);
}
/**
* 直接上级名称
*/
public void setLeaderName(String leaderName) {
map.put("leaderName", leaderName);
}
/**
* 直接上级建议发展计划
*/
public void setLeaderAdvisePlan(String leaderAdvisePlan) {
map.put("leaderAdvisePlan", leaderAdvisePlan);
}
/**
* 中心负责人名称
*/
public void setMasterName(String masterName) {
map.put("masterName", masterName);
}
/**
* 中心负责评语
*/
public void setMasterComment(String masterComment) {
map.put("masterComment", masterComment);
}
}
@Data
@FieldDefaults(level = AccessLevel.PRIVATE)
public class PerformancePersonalExcelKPIDTO {
/**
* 行号
*/
int num1;
/**
* 工作事项
*/
String name1;
/**
* 绩效标准
*/
String core1;
/**
* 权重
*/
float weightPercent1;
/**
* 目标
*/
String targetDesc1;
/**
* 计算公式
*/
String formulaDesc1;
/**
* 数据来源
*/
String dataSource1;
/**
* 员工自评分
*/
float selfScore1;
/**
* 上级评分
*/
float leaderScore1;
}
@Data
@FieldDefaults(level = AccessLevel.PRIVATE)
public class PerformancePersonalExcelCoreDTO {
/**
* 行号
*/
int num2;
/**
* 工作事项
*/
String name2;
/**
* 绩效标准
*/
String core2;
/**
* 权重
*/
float weightPercent2;
/**
* 目标
*/
String targetDesc2;
/**
* 计算公式
*/
String formulaDesc2;
/**
* 数据来源
*/
String dataSource2;
/**
* 员工自评分
*/
float selfScore2;
/**
* 上级评分
*/
float leaderScore2;
}
提示的异常或者没有达到的效果