【日常记录-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);
}
相关推荐
KIDAKN4 小时前
RabbitMQ 可靠传输性(包括消息确认, 持久性和发送方确认)
java·rabbitmq·java-rabbitmq
fantasy_arch4 小时前
SVT-AV1编码器中实现WPP依赖管理核心调度
java·前端·av1
Ophelia(秃头版4 小时前
经典设计模式:单例模式、工厂模式
java·开发语言·单例模式
Chan164 小时前
消息推送的三种常见方式:轮询、SSE、WebSocket
java·网络·websocket·网络协议·http·sse
小薛博客5 小时前
22、Jenkins容器化部署Java应用
java·运维·jenkins
西贝爱学习5 小时前
如何在 IntelliJ IDEA 中进行全局替换某个字段(或文本)
java·ide·intellij-idea
南部余额5 小时前
Spring 基于注解的自动化事务
java·spring·自动化
alf_cee5 小时前
通过Idea 阿里插件快速部署java jar包
java·ide·intellij-idea
坚持每天敲代码6 小时前
【教程】IDEA中导入springboot-maven工程
java·maven·intellij-idea
CodeCraft Studio6 小时前
国产化PDF处理控件Spire.PDF教程:如何在 Java 中通过模板生成 PDF
java·python·pdf·spire.pdf·java创建pdf·从html创建pdf