excel - 使用 ColdFusion 对 Excel 文件进行条件格式化

标签 excel coldfusion apache-poi coldfusion-11 cfspreadsheet

我正在使用 cfscript SpreadsheetNew 方法动态构建电子表格。

<cfscript>
  downloadDoc = spreadsheetNew("spreadSheetName");
  spreadsheetAddRow(downloadDoc,"spreadsheetCols");
  ....
</cfscript>

我正在构建的列之一包含一个公式,用于显示用户键入空白列的值与当前值(位于不同列中)之间的百分比差异。

我正在构建这个的用户请求我添加条件格式以根据值更改公式单元格的颜色(即,如果更改大于 20% 或小于 -20%,则单元格应为红色)。由于影响公式的值之一是由用户键入的,因此颜色更改需要在 Excel 中进行,而不是在我的函数中进行。

在 Excel 中很容易,只是不知道如何将其构建到由 cfml 生成的 Excel 文件中。 enter image description here

我的问题是,有谁知道是否可以使用 cfml (通过 cfscript 或 cfspreadsheet 标签)以及如何做到这一点?

我在谷歌上找不到任何东西,并且在 cfdocs.org 上搜索也没有找到任何东西。

最佳答案

好消息!这是可以做到的(虽然在 CF10 中不行;附带的 POI 版本太低)。由于您使用的是 CF11,因此这将帮助您完成大部分工作。这个特殊的演示会将任何大于 100 的东西变成红色。

<cfset var poiSheet = downloadDoc.getWorkBook().getSheet("Sheet1")>
<cfset poiSheet.setFitToPage(true)>

<cfset comparison = CreateObject("java", "org.apache.poi.ss.usermodel.ComparisonOperator")>

<cfset rule = poiSheet.getSheetConditionalFormatting().createConditionalFormattingRule( comparison.GE, "100.0", javacast("null", ""))>
<cfset patternFmt = rule.createPatternFormatting()>
<cfset color = CreateObject("java", "org.apache.poi.ss.usermodel.IndexedColors")>

<cfset patternFmt.setFillBackgroundColor(javacast("short", color.RED.index))>

<cfset cellRangeAddress = CreateObject("java", "org.apache.poi.ss.util.CellRangeAddress")>
<cfset regions = [ cellRangeAddress.valueOf("A1:A6") ]>
<cfset poiSheet.getSheetConditionalFormatting().addConditionalFormatting(regions, rule)>

取自组合

(但请注意,后者给出的示例实际上不起作用)

关于excel - 使用 ColdFusion 对 Excel 文件进行条件格式化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35018858/

相关文章:

php - 如何正确制作 Wordpress 插件返回可下载的 excel 文件

excel - VBA (RFC) SAP 导出到 excel

excel - 将宏对话框留在原处

excel - Table_array 最后一列中的 VLOOKUP

facebook - Http_referrer 显示 Facebook 但我不在 Facebook

java - 如何使用poi jar在java api中读取docx文件内容

html - 移动html5离线缓存动态页面

xml - 在 Coldfusion 中使用 Unicode 字符解析 XML

java - Apache POI 生成 excel 图表

java - Apache POI - Word (docx) 文档中的多列