使用CFSpreadsheet应用条件格式

时间:2013-08-01 18:32:00

标签: coldfusion coldfusion-10 cfspreadsheet

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

问题是,我需要让它在眼睛上更容易一些,所以我想看看是否有可能将条件格式应用到如果3个不同的应用程序的3列为Y,那么它将是绿色的,如果N它会变红。

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

2 个答案:

答案 0 :(得分:3)

就像我提到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

答案 1 :(得分:0)

您正在寻找的功能是SpreadsheetFormatCell()