2013-08-01 42 views
2

继续前面的线索,我已经非常接近我想要的地方,并且学到了很多东西。我在MSSQL Server 2008环境下使用CF10。我有一个使用cfspreadsheet生成的报告,然后根据用户是否启用了应用程序来分发值,它将输出为“是”,如果不是在Excel电子表格中输出为“否”。使用CF电子表格应用条件格式

问题是,我需要使它在眼睛上稍微容易一些,所以我想看看是否可以将条件格式应用到3个不同的应用程序的3列是Y的地方,然后它会是绿色的,如果N为红色。

任何建议或例子会很好,谢谢!

+0

我的建议是你打算使用,包括素雅每种格式创建结构。然后使用条件逻辑来选择您正在使用的任何格式化函数的结构。迄今为止发布的答案中提到了两个。 –

回答

2

就像我提到的in your other thread,如果返回值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> 

的“DATAFORMAT”使用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 
+0

对不起,这正是我使用'电子表格函数'来应用现有的格式。在我的最后有一些不好的术语混淆了。我会看看我能想出什么;再次感谢您的帮助。 – bman2013

+0

Leigh刚才说的很多。对于我以前的答案,我越想越多,我认为最好将结果作为一点而不是文本传递,然后处理代码中的格式,特别是如果要使用条件逻辑来修改单元格颜色。 Leigh的建议是要走的路。 :-) – Shawn

+0

肖恩 - 是的,这原来是那些“这取决于目标”类型的问题之一:) – Leigh

相关问题