irpas技术客

hutool工具ExcelWriter设置单个单元格样式_wzq_55552_hutool设置单元格样式

未知 2384

官网自定义样式:

ExcelWriter writer = ...; // 定义单元格背景色 StyleSet style = writer.getStyleSet(); // 第二个参数表示是否也设置头部单元格背景 style.setBackgroundColor(IndexedColors.RED, false); //设置内容字体 Font font = writer.createFont(); font.setBold(true); font.setColor(Font.COLOR_RED); font.setItalic(true); //第二个参数表示是否忽略头部样式 writer.getStyleSet().setFont(font, true);

以上自定义样式是针对单元格集合的,划分为:

头部样式 headCellStyle

普通单元格样式 cellStyle

数字单元格样式 cellStyleForNumber

日期单元格样式 cellStyleForDate

但是,有时候我们只需要修改单个单元格样式,其他单元格样式采用默认样式,参考如下:

@GetMapping("downloadExampleExcel") public Response downloadExampleExcel(HttpServletResponse response) { logger.info("downloadExampleExcel response start。。。"); List<Title> titles = titleService.selectTitles(); ExcelWriter writer = ExcelUtil.getWriter(); for (int i = 0, j = 0; i < titles.size(); i++) { Title title = titles.get(i); writeCell(writer, j ++, title.getFieldDescC(), title.getRequiredFlag()); } response.setContentType("application/vnd.ms-excel;charset=utf-8"); response.setHeader("Content-Disposition", "attachment;filename=" + "文件名" + ".xls"); ServletOutputStream out = null; try { out = response.getOutputStream(); writer.flush(out, true); } catch (Exception e) { log.error("downloadExampleExcel response exception", e); return ResponseHelper.buildFail(e.getMessage()); } finally { writer.close(); if (out != null) { IoUtil.close(out); } logger.info("downloadExampleExcel response end。。。"); } return ResponseHelper.buildOk(); } /** * 输入标题到excel * @param writer excel对象 * @param column 当前列位置 * @param cellValue 标题内容 * @param requiredFlag 是否标红 */ private void writeCell(ExcelWriter writer, int column, String cellValue, String requiredFlag){ // 根据x,y轴设置单元格内容 writer.writeCellValue(column , 0, cellValue); Font font = writer.createFont(); font.setColor(Font.COLOR_RED); if (Constants.NUMBER_TWO.equals(requiredFlag)){ // 根据x,y轴获取当前单元格样式 CellStyle cellStyle = writer.createCellStyle(column, 0); // 内容水平居中 cellStyle.setAlignment(HorizontalAlignment.CENTER); // 内容垂直居中 cellStyle.setVerticalAlignment(VerticalAlignment.CENTER); // 设置边框 cellStyle.setBorderBottom(BorderStyle.THIN); cellStyle.setBorderLeft(BorderStyle.THIN); cellStyle.setBorderRight(BorderStyle.THIN); // 字体颜色标红 cellStyle.setFont(font); } }

?单个单元格字体标红,效果:

?


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #hutool设置单元格样式 #writer #style