【日常记录-Java】EasyExcel输出设定字体

复制代码
Author:赵志乾
Date:2024-08-15
Declaration:All Right Reserved!!!

1. 问题描述

使用EasyExcel默认的设定输出时,中文字体显得比较怪异。

2. 解决方案

本质是单元格样式的设置问题,在EasyExcel中,可以通过实现WriteHandler接口或使用EasyExcel提供的注解以及WriteCellStyle来自定义样式。由于EasyExcel本身提供了HorizontalCellStyleStrategy,其允许开发者自定义表头和内容的样式,功能上足以满足简单需求。

设定表头样式为楷体14号加粗居中对齐、内容样式为楷体11号居中对齐,代码如下:

复制代码
private static HorizontalCellStyleStrategy horizontalCellStyleStrategy;

static {
   WriteFont headFont = new WriteFont();
   headFont.setFontName("楷体");
   headFont.setFontHeightInPoints((short) 14);
   headFont.setBold(true);

   WriteFont contentFont = new WriteFont();
   contentFont.setFontName("楷体");
   contentFont.setFontHeightInPoints((short) 11);
   contentFont.setBold(false);

   WriteCellStyle headCellStyle = new WriteCellStyle();
   headCellStyle.setWriteFont(headFont);
   headCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);

   WriteCellStyle contentCellStyle = new WriteCellStyle();
   contentCellStyle.setWriteFont(contentFont);
   contentCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);

   horizontalCellStyleStrategy = new HorizontalCellStyleStrategy(headCellStyle, contentCellStyle);
}


public static void write(String fullName, String sheetName, List<T> items, Class<T> clazz){
    EasyExcel.write(fullName, clazz)
                    .registerWriteHandler(horizontalCellStyleStrategy)
                    .registerConverter(new DateTimeConverter())
                    .sheet(sheetName)
                    .doWrite(items);
}
相关推荐
AI导出鸭5 小时前
怎么让豆包做表格?AI导出鸭苹果版将豆包输出的管道表格智能解析为二维结构,一键导出为Excel或Word标准表格。
人工智能·chatgpt·word·excel·ai导出鸭
xbgRS8 小时前
springboot的自动装配
java·spring boot
嘻哈∠※15 小时前
0061基于 SpringBoot 的投稿与稿件处理系统设计与实现
java·spring boot·后端
白狐_79816 小时前
408数据结构第8章:排序②——性质对比秒杀、场景选择与外部排序
java·数据结构·算法
zander25817 小时前
LeetCode 84:柱状图中的最大矩形——单调栈如何确定左右边界
java·数据结构·算法
码匠许师傅17 小时前
【C++ 面试真题】聊聊 C++ 的拷贝构造与拷贝赋值
java·c++·面试
极创信息18 小时前
系统安全隐患全方位排查方案:标准化渗透测试全流程
java·opencv·struts·数据挖掘·eclipse·语音识别·hibernate
汉字萌萌哒19 小时前
2019CCF-CSP入门级C++试题解析
java·开发语言·c++
喜欢的名字被抢了19 小时前
程序出问题怎么查,以及如何让它不掉线
java·运维·数据库
数据知道20 小时前
反序列化漏洞:Java、PHP、Python 三条线各讲透
java·网络·python·安全·网络安全·php