如何在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
相关产品推荐
相关产品推荐

