CFSpreadSheet - 格式化列不格式化整个列

时间:2014-10-30 15:28:47

标签: coldfusion coldfusion-10

使用CF10 Standard从查询中创建电子表格。无论我到目前为止尝试过什么,特定列的格式在第32行(1个标题行,31个数据)停止,即使整个工作表填充到186行。

<cfscript>
 dfStyle=StructNew();
 dfStyle.fgcolor="pale_blue";
 dfStyle.dataformat="mm/dd/yyyy";
 theSheet = SpreadSheetNew('mysheet');
 SpreadSheetAddRow(theSheet,'SID,FIRST,LAST,ADDRESS1,ADDRESS2,CITY,STATE,ZIP,EMAIL,ADDED,PID');
 SpreadSheetAddRows(theSheet,qry);
 SpreadSheetFormatColumn(theSheet,dfStyle,10);
</cfscript>

我正试图在'ADDED'列上获得一致的mm / dd / yyyy格式。相反,我通过第31行获得了这个,然后在行上获得了41937.56594这样的日期。

enter image description here

在公式栏中,我将“10/20/2014 12:25:23 PM”显示为第一个值,将“41932.552037037”显示为第二个值。

如果我在查询中格式化日期(即date_format(sp_add,'%c /%e /%Y')AS spadd)我在列中一直都有一个不错的日期格式,但是蓝色仍然停止在第32行。

这是匿名查询的cfoutput - 格式化顶行,底行丢失格式(背景颜色 - 查询中的格式化日期)。我现在也从查询中删除了ADDRESS2列。

enter image description here

1 个答案:

答案 0 :(得分:4)

我不确定问题是什么,但尝试使用XML格式选项(生成xlsx文件而不是旧样式xls文件的选项)。在您的代码中,将“true”添加为您的spreadsheetnew()函数调用的第二个参数。

<cfscript>
 dfStyle=StructNew();
 dfStyle.fgcolor="pale_blue";
 dfStyle.dataformat="mm/dd/yyyy";

 theSheet = SpreadSheetNew('mysheet',TRUE);

 SpreadSheetAddRow(theSheet,'SID,FIRST,LAST,ADDRESS1,ADDRESS2,CITY,STATE,ZIP,EMAIL,ADDED,PID');
 SpreadSheetAddRows(theSheet,qry);
 SpreadSheetFormatColumn(theSheet,dfStyle,10);
</cfscript>

这将解决问题 - 虽然我们不知道原因:)