首页 > 编程语言 >【日常记录-Java】EasyExcel输出设定字体

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

时间:2024-08-15 16:59:18浏览次数:15  
标签:WriteCellStyle Java 楷体 EasyExcel contentFont 字体 new headFont

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);
}

        

标签:WriteCellStyle,Java,楷体,EasyExcel,contentFont,字体,new,headFont
From: https://blog.csdn.net/zhaoyaxuan001/article/details/141226001

相关文章

  • java并发
    线程的生命周期(线程有几种状态)线程通常有五种状态,创建,就绪,运行、阻塞和死亡状态:新建状态(New):新创建了一个线程对象。就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start方法。该状态的线程位于可运行线程池中,变得可运行,等待获取CPU的使用权。运行状态(Ru......
  • 【Java】 IO流使用方法 (常见方法)
    Java系列文章目录补充内容Windows通过SSH连接Linux第一章Linux基本命令的学习与Linux历史文章目录Java系列文章目录一、前言二、学习内容:三、问题描述四、解决方案:4.1File的使用4.2防止乱码问题五、总结:5.1学习总结:一、前言学习文件IO流学习文档的使用具......
  • 使用dotenv保护JavaScript代码中的秘密信息
    把诸如apikey这种秘密信息写死的源代码里不可取,比如通常源代码会通过git仓库等进行管理,这样敏感信息就会被共享了。我们选择使用dotenv库把敏感信息配置在.env文件中,然后把.env文件添加到gitignore文件里,不上传到代码仓库。node程序启动后,会将.env文件里的配置项加载到进程对应......
  • 学习Java第20天
    何为方法System.out.println(),那么它是什么呢?Java是语句的集合,它们在一起执行一个功能方法是解决一类问题的步骤的有序组合方法包含于类或对象中方法在程序中被创建,在其他地方被引用设计方法的原则:方法的本意是功能块,就是实现某个功能的语句块的集合。我们设计方法的时候,最......
  • 蒜法笔记(Java)- 堆排序
    逻辑    堆是一种所有父节点都大于等于(大根堆)或小于等于(小根堆)其子节点的完全二叉树。堆排序(升序)就是一种将数组视为一个完全二叉树,将其变为一个大根堆后将堆顶放到数组尾,重复n次后数组有序的排列方法,时间复杂度为O(nlogn)。(感觉好像冒泡哦)    简述:将数组视......
  • 使用Docker将Java项目打包并部署到CentOS服务器的详细教程。
    当然,让我们将上述步骤进一步细化,以便更好地理解整个过程。前提条件一个Java项目CentOS服务器,并且已安装DockerJava项目可以正常在本地运行具有服务器访问权限————————————————————————————————————————————步骤1:准备Jav......
  • JavaScript实现数组与树结构的相互转换
    1、将树结构数据转换为数组(按照树结构自上而下的顺序转换)树结构:树结构数据样例:代码转换://将树结构数据转换为数组treeNodes为树结构形式的数据functiontreeToArray(treeNodes){letresult=[];//递归函数traverse,用于处理单个节点functiontraverse(node......
  • 计算机毕业设计推荐-基于Java的校园交友网站
    ......
  • Java面试题学习(Spring & SpringBoot)
    1.Java基础2.Spring&SpringBoot(正在浏览)目录一、Spring1.谈谈你对Spring的理解?/什么是Spring?2.Spring有什么特点?3.Spring框架中都用到了哪些设计模式?二、SpringIOC4.什么是SpringIOC?什么是SpringIOC容器?有什么作用?5.SpringIOC的实现机制是什么?6.什么是S......
  • JAVA面试题大全(600+道题目)
    1.想要线程安全的HashMap怎么办?(1)使用ConcurrentHashMap(2)使用HashTable(3)Collections.synchronizedHashMap()方法2.ConcurrentHashMap原如何保证的线程安全?JDK1.7:使用分段锁,将一个Map分为了16个段,每个段都是一个小的hashmap,每次操作只对其中一个段加锁JDK1.8:采用CAS+Sync......