2014-10-30 66 views
1

使用CF10 Standard從查詢創建電子表格。不管我到目前爲止嘗試過什麼,即使整個工作表被填充到186行,特定列的格式也會停止在第32行(1個標題行,31個數據)。CFSpreadSheet - 格式列未格式化整列

<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

在式酒吧我顯示「2014年10月20日下午12時25分23秒」作爲第一個值和「41932.552037037」作爲第二值。

如果我在查詢中格式化日期(例如,date_format(sp_add,'%c /%e /%Y')AS spadd)我確實在列的下方得到了一個很好的日期格式,但藍色仍然在第32行停止。

以下是匿名查詢的cfoutput - 頂行被格式化,底行丟失格式(背景顏色 - 在查詢中格式化日期)。我現在也從查詢中刪除了ADDRESS2列。

enter image description here

+0

什麼是特定領域的最後格式化和未格式化的第一行中的值? – 2014-10-30 15:36:16

+0

丹 - 我更新了問題,從屏幕截圖和值從公式欄 – Steve 2014-10-30 15:44:36

+0

我認爲你需要轉儲您的查詢,並檢查出第32行的記錄。我認爲存儲在數據庫中的日期是不同於行32行。 – 2014-10-30 15:45:39

回答

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> 

這將解決這個問題 - 儘管我們不知道爲什麼:)

+1

Thant幫助,非常感謝..瘋狂,但是它的工作原理。 – Pradeep 2015-10-25 09:52:59