当前位置: 首页 > news >正文

SpringBoot+EasyExcel设置excel样式

方式一:使用注解方式设置样式

模板可通过@HeadFontStyle、@HeadStyle、@ContentFontStyle、@ContentStyle、@HeadRowHeight @ContentRowHeight等注解设置excel单元格样式;

//字体样式及字体大小
@HeadFontStyle(fontName = "宋体",fontHeightInPoints = 11)
@ContentFontStyle(fontName = "宋体",fontHeightInPoints = 11)

//标题样式
@HeadStyle(wrapped = BooleanEnum.FALSE,
horizontalAlignment= HorizontalAlignmentEnum.CENTER,
verticalAlignment = VerticalAlignmentEnum.CENTER,
borderLeft = BorderStyleEnum.THIN,
borderRight = BorderStyleEnum.THIN,
borderTop = BorderStyleEnum.THIN,
borderBottom = BorderStyleEnum.THIN,
fillForegroundColor = 49)

//单元格内容样式
@ContentStyle(wrapped = BooleanEnum.FALSE,
horizontalAlignment= HorizontalAlignmentEnum.CENTER,
verticalAlignment = VerticalAlignmentEnum.CENTER,
borderLeft = BorderStyleEnum.THIN,
borderRight = BorderStyleEnum.THIN,
borderTop = BorderStyleEnum.THIN,
borderBottom = BorderStyleEnum.THIN,
fillForegroundColor = 9)

//标题及数据行高
@HeadRowHeight(24)
@ContentRowHeight(25)
public class CertifyOrderDetailsExcel {

@ColumnWidth(10)
@ExcelProperty(value = {"统计","名称"},index = 1)
private String name;

 

@ContentStyle(wrapped = BooleanEnum.TRUE,horizontalAlignment= HorizontalAlignmentEnum.CENTER,verticalAlignment = VerticalAlignmentEnum.CENTER,borderLeft = BorderStyleEnum.THIN,borderRight = BorderStyleEnum.THIN,borderTop = BorderStyleEnum.THIN,borderBottom = BorderStyleEnum.THIN,fillForegroundColor = 9)

 

使用easyexcelFactory将数据到出excel文件业务实现导出核心部分代码如下://此处list为需要导出的数据,通过数据库查询List<Object> list = null;
// ServletOutputStream outputStream = response.getOutputStream();
//将列表导成excel,fileName为文件的具体路径(自行设定),也可为outputStream输出流//CertifyOrderDetailsExcel.class为上面配置的excel模板类
EasyExcel.write(fileName, CertifyOrderDetailsExcel.class)
.sheet("统计")
.relativeHeadRowIndex(0)
.doWrite(list);

方式二:整体设置样式

public static <T> void writeExcel(HttpServletRequest request, HttpServletResponse response, List<T> data, Class tClass, String name){try {name = java.net.URLEncoder.encode(name, "UTF-8").replaceAll("\\+", "%20");String dateStr = String.valueOf(LocalDate.now().getMonthValue())+"-"+LocalDate.now().getDayOfYear();name = name+dateStr;//防止下载时中文乱码name = new String(name.getBytes(StandardCharsets.UTF_8), StandardCharsets.ISO_8859_1);response.setCharacterEncoding("utf-8");//添加这个是防止前端拿不到Content-dispositionresponse.setHeader("Content-Disposition", "attachment;filename=" + name+".xlsx");response.setHeader("Access-Control-Expose-Headers","Content-disposition");WriteCellStyle headWriteCellStyle = new WriteCellStyle();WriteFont headWriteFont = new WriteFont();headWriteFont.setFontHeightInPoints((short) 12);headWriteCellStyle.setWriteFont(headWriteFont);//内容样式策略WriteCellStyle contentWriteCellStyle = new WriteCellStyle();contentWriteCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);contentWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.LEFT);contentWriteCellStyle.setBorderLeft(BorderStyle.THIN);contentWriteCellStyle.setBorderTop(BorderStyle.THIN);contentWriteCellStyle.setBorderRight(BorderStyle.THIN);contentWriteCellStyle.setBorderBottom(BorderStyle.THIN);//设置 自动换行contentWriteCellStyle.setWrapped(true);// 字体策略WriteFont contentWriteFont = new WriteFont();// 字体大小contentWriteFont.setFontHeightInPoints((short) 12);contentWriteCellStyle.setWriteFont(contentWriteFont);// 这里需要设置不关闭流EasyExcelFactory.write(response.getOutputStream(), tClass).registerWriteHandler(new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle)).autoCloseStream(Boolean.FALSE).sheet("毛坯反馈参数(越南)").doWrite(data);} catch (Exception e) {//log.error("文件导出失败,错误信息{}",e);// 重置responseresponse.reset();response.setContentType("application/json");response.setCharacterEncoding("utf-8");try {response.getWriter();} catch (IOException ioException) {ioException.printStackTrace();}}}

http://www.lryc.cn/news/232869.html

相关文章:

  • 自定义View之Measure(二)
  • SQL注入学习--GTFHub(布尔盲注+时间盲注+MySQL结构)
  • Kubernetes学习-概念2
  • StyleGAN:彻底改变生成对抗网络的艺术
  • 黑马程序员微服务第四天课程 分布式搜索引擎1
  • 向量以及矩阵
  • 9.程序的机器级代码表示,CISC和RISC
  • 《硅基物语.AI写作高手:从零开始用ChatGPT学会写作》《从零开始读懂相对论》
  • 【2016年数据结构真题】
  • 创作者等级终于升到4级了
  • Games104现代游戏引擎笔记 面向数据编程与任务系统
  • 系列三、GC垃圾回收【总体概览】
  • 无线WiFi安全渗透与攻防(N.3)WPA破解-创建Hash-table加速并用Cowpatty破解
  • golang 动态库
  • Python的2042小游戏及其详解
  • 怎么去掉邮件内容中的回车符
  • Git-概念与架构
  • android 数独小游戏 经典数独·休闲益智
  • GAT里面的sofamax函数的实现:
  • Idea 编译SpringBoot项目Kotlin报错/Idea重新编译
  • 【Qt之QWizard问题】setPixmap()设置logo、background、watermark无效不显示解决方案
  • mysql 设置远程登录
  • ES的索引概念
  • text/xml和application/xml
  • 鸿蒙4.0正式版升级机型
  • 架构开发与优化咨询和实施服务
  • react hook ts 实现 列表的滚动分页加载,多参数混合混合搜索
  • Java应用如何不改代码,调整窗口大小
  • 汽车 CAN\CANFD数据记录仪
  • Kafka中topic(主题)、broker(代理)、partition(分区)和replication(副本)它们的关系