public class ExcelUtil {
private static int scoreIndex;
//自己封装的工具方法
public static void exportExcel(List<?> objects, Class clazz, String fileName, String sheetName, HttpServletResponse response) throws IOException {
if (clazz == ProjectScoreExcel.class) {
scoreIndex = 4;
} else {
scoreIndex = 2;
}
// 设置响应头
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("utf-8");
// 设置防止中文名乱码
String exportName = URLEncoder.encode(fileName, "utf-8");
response.setHeader("Content-Type", "video/x-msvideo");
// 文件下载方式(附件下载还是在当前浏览器打开)
response.setHeader("Content-disposition", "attachment;filename=" + exportName + ".xlsx");
// 向Excel中写入数据
EasyExcel
.write(response.getOutputStream(), clazz)
.sheet(sheetName).registerWriteHandler(new CellWriteHandler() {
@Override
public void afterCellDispose(CellWriteHandlerContext context) {
Cell cell = context.getCell();
if (context.getRowIndex() > 0 && cell.getColumnIndex() == ExcelUtil.getScoreIndex()) {
WriteCellStyle writeCellStyle = context.getFirstCellData().getOrCreateStyle();
WriteFont writeFont = writeCellStyle.getWriteFont();
String stringCellValue = cell.getStringCellValue();
double score = Double.parseDouble(stringCellValue);
if (score > 90) {
writeFont.setColor((short) 10);
} else if (score >= 70) {
writeFont.setColor((short) 50);
} else {
writeFont.setColor((short) 51);
}
}
}
})
.doWrite(objects);
}
public static int getScoreIndex() {
return scoreIndex;
}
}
Easy Excel导出时修改指定单元格字体格式(颜色)
最新推荐文章于 2024-09-03 18:41:05 发布