在上一个线程的延续中,我已经非常接近我想要的地方并且学到了很多东西。我在 MSSQL Server 2008 环境下使用 CF10。我有一个使用 cfspreadsheet 生成的报告,然后根据用户是否启用了应用程序吐出值,它将在 Excel 电子表格中输出为“是”,如果没有输出为“否”。
问题是,我需要让它看起来更容易一些,所以我想看看是否可以将条件格式应用于如果具有 3 个不同应用程序的 3 列是 Y 那么它将是绿色的,如果 N 它会变红。
任何建议或示例都会很棒,谢谢!
在上一个线程的延续中,我已经非常接近我想要的地方并且学到了很多东西。我在 MSSQL Server 2008 环境下使用 CF10。我有一个使用 cfspreadsheet 生成的报告,然后根据用户是否启用了应用程序吐出值,它将在 Excel 电子表格中输出为“是”,如果没有输出为“否”。
问题是,我需要让它看起来更容易一些,所以我想看看是否可以将条件格式应用于如果具有 3 个不同应用程序的 3 列是 Y 那么它将是绿色的,如果 N 它会变红。
任何建议或示例都会很棒,谢谢!
就像我在您的其他线程中提到的那样,如果您返回 bit
值(而不是字符串),则应用自定义单元格格式很简单。但是您必须使用电子表格功能,而不是 cfspreadsheet(不支持自定义格式)。
这是一个扩展示例,用于演示如何合并条件颜色格式:
<cfscript>
// build sample query
// note: values must be numeric and NOT text/varchar
qData = queryNew("");
queryAddColumn(qData, "AppNameAlpha", "bit", listToArray("0,0,1,0,1"));
queryAddColumn(qData, "AppNameBeta", "bit", listToArray("1,1,0,0,1"));
// create sample sheet
sheet = spreadsheetNew();
spreadsheetAddRows(sheet, qData);
// apply colorized yes/no format
spreadsheetFormatColumns(sheet, {dataformat='[Green]"Y";;[Red]"N"'}, "1-2");
spreadsheetWrite(sheet, "c:/path/to/sheet.xls", true);
</cfscript>
“数据格式”使用 Excel 自定义数字格式的前三个部分:<positive><negative><zero>
. 翻译:
[Green]"Y"; // <positive values>: display "Y" in green
; // <negative values>: do nothing extra
[Red]"N" // <zero values>: display "N" in red
您正在寻找的功能是SpreadsheetFormatCell()