You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Apache POI 4.01(ColdFusion 2021)中添加单元格下边框?

ColdFusion 2021(Apache POI 4.0.1)单元格边框设置失效问题解决

问题背景

将基于ColdFusion 11(搭配Apache POI 3.10)的Excel生成站点迁移至ColdFusion 2021(搭配Apache POI 4.0.1)后,单元格填充着色问题已修复,但单元格下边框设置功能失效。

原POI 3.10可正常运行的代码

<cfset cellStyleCurrencyBottomBorderDoubleGreen = wb.createCellStyle()/>
<cfset cellStyleCurrencyBottomBorderDoubleGreen.setDataFormat(createObject("java","org.apache.poi.hssf.usermodel.HSSFDataFormat").getBuiltinFormat("($##,####0.00_);[Red]($##,####0.00)"))/>
<cfset cellStyleCurrencyBottomBorderDoubleGreen.setBorderBottom(cellStyleCurrencyBottomBorderDoubleGreen.BORDER_DOUBLE)/>

报错信息

Element BORDER_DOUBLE is undefined in CELLSTYLECURRENCYBOTTOMBORDERDOUBLEGREEN.

尝试无效的代码

<cfset cellStyleCurrencyBottomBorderDoubleGreen.setBorderBottom(cellStyleCurrencyBottomBorderDoubleGreen.THIN)/>

解决方案

已解决该问题,以下是Apache POI 4.0.1 + ColdFusion 2021环境中设置单元格边框的正确写法,注释内为旧版POI 3.10的实现方式:

<cfset cellStyleCurrencyBottomTopBorderTan = wb.createCellStyle()/>
<cfset cellStyleCurrencyBottomTopBorderTan.setDataFormat(createObject("java","org.apache.poi.hssf.usermodel.HSSFDataFormat").getBuiltinFormat("($##,####0.00_);[Red]($##,####0.00)"))/>

<cfset cellStyleCurrencyBottomTopBorderTan.setBorderBottom(createObject("java", "org.apache.poi.ss.usermodel.BorderStyle").THICK)>
<!--- <cfset cellStyleCurrencyBottomTopBorderTan.setBorderBottom(cellStyleCurrencyBottomTopBorderTan.BORDER_DOUBLE)/> --->

<cfset cellStyleCurrencyBottomTopBorderTan.setBorderTop(createObject("java", "org.apache.poi.ss.usermodel.BorderStyle").THIN)>
<!--- <cfset cellStyleCurrencyBottomTopBorderTan.setBorderTop(cellStyleCurrencyBottomTopBorderTan.BORDER_THIN)/> --->

内容的提问来源于stack exchange,提问作者weggie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 19:59:57