java poi excel 富文本粗体无效

java poi excel 设置单元格富文本 粗体无效解决办法_poi 设置富文本-CSDN博客

问题描述

需求:java导出excel模板,单元格需要设置字段名+备注,字段名加粗,备注不加粗。

方案:可以采用富文本RichTextString来实现设置部分字体加粗样式。

效果:打开下载的xlsx模板表格,没有展示加粗效果,设置部分标红可以,加粗没有效果。

原因分析

网上查找资料,寻求帮助,看到上述博文,场景确实是wps打开无加粗效果,按照方案进行修改。

解决方案

尝试上述方案,验证成功,不过代码稍微有点不同,第一种是原博文的写法,第二种是最终采用的写法。

List<CTRElt> ctrEltList = hssfRichTextString.getCTRst().getRList();

if(ctrEltList != null && ctrEltList.size()>0){

for(CTRElt ctrElt : ctrEltList){

CTRPrElt ctrPrElt = ctrElt.getRPr();//获取属性元素

if(ctrPrElt != null){

List<CTBooleanProperty> bList = ctrPrElt.getBList();//获取<b/>元素

if(bList != null && bList.size() > 0){

bList.get(bList.size() - 1).unsetVal();//销毁设置的属性值

}

}

}

}


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/xht1351549230/article/details/129934870

上述代码获取List存在报错,NoClassDefFoundError,改为如下数组写法:

CTRElt[] ctrEltArray = hssfRichTextString.getCTRst().getRArray();

if(ctrEltArray != null && ctrEltArray .length >0){

for(int i=0;i<ctrEltArray .length;i++){

CTRElt ctrElt = ctrEltArray[i];

CTRPrElt ctrPrElt = ctrElt.getRPr();//获取属性元素

if(ctrPrElt != null){

CTBooleanProperty[] bArray= ctrPrElt.getBArray();//获取<b/>元素

if(bArray!= null && bArray.length > 0){

bArray[bArray.length - 1].unsetVal();//销毁设置的属性值

}

}

}

}

总结

这类疑难杂症,还是对这块底层不了解,奇奇怪怪的问题,感谢大佬,小记一下积累经验,欢迎交流。

相关推荐
杂货铺的小掌柜43 分钟前
apache poi excel 字体数量限制
java·excel·poi
东方佑13 小时前
基于FastAPI与LangChain的Excel智能数据分析API开发实践
langchain·excel·fastapi
许泽宇的技术分享14 小时前
当Excel遇上大语言模型:ExcelAgentTemplate架构深度剖析与实战指南
语言模型·架构·excel
gihigo199814 小时前
基于MATLAB的Excel文件批量读取与循环处理
matlab·excel
CodeCraft Studio1 天前
Excel处理控件Aspose.Cells教程:使用 Python 将 HTML 转换为 Excel
python·html·excel·aspose·aspose.cells·html转excel
Leo655351 天前
Excel 读取阶段就去掉换行
excel
小镇学者1 天前
【PHP】利用 xlswriter 扩展导出的Excel文件报错问题
php·excel
程序员杰哥1 天前
Pytest与Unittest测试框架对比
自动化测试·软件测试·python·测试工具·测试用例·excel·pytest
cehuishi95271 天前
excel中关联word邮件合并使用
word·excel·批量打印·邮件合并
曾令胜1 天前
excel导出使用arthas动态追踪方法调用耗时后性能优化的过程
spring·性能优化·excel