java poi框架导出excel如何插入特殊字符(复选框勾选)

java poi框架导出excel如何插入特殊字符(复选框勾选)

java poi框架导出excel如何插入特殊字符(复选框勾选)

google了好久java导出excel如何导出复选框勾选状态,没有找到可行的结果,实际操作了一下,要不就是导不出,要不就是导出之后不正确。

先看看要导出的excel格式吧

d12c88b9c80302f0916417d2599f9066.png

就是一个单元格中包含了中文和方框的符号,根据后台结果,如果是true,需要在方框内打勾。

1.选择

c8ee3cc55671f32796fca22bc77490f8.png

2.找到Wingdings 2字体

d8566f565e9ed4caece26453c4037945.png

就可以手动插入一个check的复选框了

1.要注意每个字符其实就是一个Unicode编码,checkbox在代码中表示如下:\u0052

2.正常字体的\u0052编码对应的字符是R

3.修改单元格内字体,如果修改的过长,中文字符就会变乱码,如果修改的过短,就不能正常展示我们插入的特殊符号

4.我曾经尝试设置cell的font,但是发现会影响其它单元格的font,并且cell中包含的中文字符也会变成乱码,所以就放弃设置cell的font了

代码如下:

/**

* 该方法是处理checkbox的

*/

public RichTextString process(Cell cell, Object input, Font font) {

RichTextString richTextString;

// 设置字体名称

font.setFontName("Wingdings 2");

if (Objects.equals(input, true)) {

richTextString = new HSSFRichTextString("是\u0052 否\u25A1");

richTextString.applyFont(1, 2, font);

} else {

richTextString = new HSSFRichTextString("是\u25A1 否\u0052");

richTextString.applyFont(4, 5, font);

}

return richTextString;

}

// font是通过workbook创建出来的,是不能new的

Font font = workbook.createFont();

// 此处省略自己封装的框架,value值就是上面方法返回的RichTextString

cell.setCellValue((RichTextString) value);

导出结果如图:

e793cbe1a7f739cc6d7986ae6f9beed5.png

至于纳税人识别号的方框内填数字,到现在也没好的方法来解决,手动插入还不会,更别提代码处理了,如果有人有更好的方案可以提出来,一起进步。

java poi框架导出excel如何插入特殊字符(复选框勾选)相关教程

Java Spring Cloud Alibaba-Nacos 配置中心:(三)在 nacos-ser

Java Spring Cloud Alibaba-Nacos 配置中心:(三)在 nacos-server 里面添加配置 在 nacos-server 里面添加配置 在 nacos-server 里面添加配置 Nacos-client 会从 Nacos-Server 里面获取配置文件,首先,Nacos-Server 里面需要有配置文件才能获

java连接数据库JDBC

java连接数据库JDBC 一、准备jar包 使用 eclipse 连接数据库之前需要先根据使用的数据库版本下载一个 jar 包 下载网址:https://mvnrepository.com/artifact/mysql/mysql-connector-java 例如,使用5版本的只需要随便下一个5开头的即可 下载完成之后,在工程

Java Spring Cloud Alibaba-Nacos 配置中心:(四)获取配置信息

Java Spring Cloud Alibaba-Nacos 配置中心:(四)获取配置信息 获取配置信息 1.添加一个配置文件 2.新建一个启动类 3.启动测试 我们将演示在 config-client 里面获取上面我们写的 2 个配置信息 文件名称为: 注意:不是 application.yml ,bootstrap.yml 比

java 接友盟手机一键登录的案例(安卓端和IOS端传递token)

java 接友盟手机一键登录的案例(安卓端和IOS端传递token) 放一个友盟的手机登录流程图 上图可以看出,我们java只需要最后,拿到token后,发起请求,给app端返回个号码就行了 说的简单,做的真难做 这是友盟的开发文档 这是他提供的java签名demo 用以上的文

缓冲区 | 没吃透Netty 缓冲区,还能算得上Java老司机?

缓冲区 | 没吃透Netty 缓冲区,还能算得上Java老司机? Hi ! 我是小小,开始本周的最后一篇,最后一篇的主要内容是Java NIO 缓冲区 前言 Java NIO 需要理解的主要有缓冲区,通道,选择器,这三个主要的部分。 基础 操作系统为了提供稳定性,把虚拟地址空间分

【JavaScript】setTimeout 与 setInterval 的细节区别(存在的误

【JavaScript】setTimeout 与 setInterval 的细节区别(存在的误差区别) 来源:JavaScript 教程 / 异步操作 / 定时器 / 2. setInterval() 1. setTimeout() 指定某个函数或某段代码,在多少毫秒之后执行; 2. setInterval() 指定的是“开始执行”之间的间隔,

Java多线程面试题总结

Java多线程面试题总结 文章目录 多线程 1.线程和进程 2.线程定义方法,这些方法的区别? 3.start()和run()的区别? 4.线程状态转换图 5.concurrent包有啥内容? 6.线程安全的容器 7.线程同步的概念 8.死锁的原理和解决方式、手写死锁 9.乐观锁悲观锁思想 悲

SpringMVC框架入门搭建(新手向)

SpringMVC框架入门搭建(新手向) SpringMVC框架搭建(入门) 这个学期开了JavaWeb的课程,老师前几节课讲了好多技术,当然90%都没听说过的新东西。为什么? 才不是因为我懒,划水划到了大三 SpringMVC就是SpringModelViewController,即模型-视图-控制器的We

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐