2017-03-21 46 views
3

我在學習的ColdFusion的過程中,我試圖用spreadsheetFormatRows(spreadsheetObject, dataFormat, rangeOfRowsFormated)如何定義cfspreadsheet對象上的行數?

與電子表格的工作如何,我可以設置爲包含所有行,除了標題行,這是列名的範圍內?有沒有函數返回cfspreadsheet對象上的行數,所以我可以將範圍設置爲'2-rowCount'?

我試過spreadsheetFormatRows(theSheet, headerFormat, 2-50);,工作正常,並格式化第2到第50行,但我不想擁有硬編碼。

預先感謝您。

+1

跟蹤的行數爲您填充他們和值保存到一個變量。更簡單的是,如果它們是查詢結果,則使用cfquery中的recordcount變量。 –

+0

是的,這是一個查詢,是的記錄數完美。發佈它作爲答案,以便我可以將其標記爲對於那些稍後閱讀帖子的人來說是正確的。謝謝。 – DoArNa

回答

1

跟蹤填充它們的行數並將值保存到變量中。更簡單的是,如果它們是查詢結果,則使用cfquery中的recordcount變量。

請記住添加1,以便格式化最後一行。

3

電子表格對象具有屬性rowcount。你可以做spreadsheetFormatRows(theSheet, format, "2-#theSheet.rowCount#");

<cfscript> 
    mySheet = spreadSheetNew("My Sheet"); 
    spreadSheetAddRow(mySheet, "'Col. A','Col. B','Col. C'"); 
    for(i=1; i <= RandRange(1, 100); i++){ 
     spreadSheetAddRow(mySheet, "'Row A#i#','Row B#i#','Row C#i#'"); 
    } 
    spreadSheetFormatRow(mySheet, {bold = true, fontsize = 24}, 1); 
    spreadSheetFormatRows(mySheet, {fontsize = 16}, "2-#mySheet.rowcount#"); 
    cfheader(name = "Content-Disposition", value = 'inline; fileName="test.xls"'); 
    cfcontent(type="application/vnd.ms-excel", variable="#spreadSheetReadBinary(mySheet)#"); 
</cfscript> 

Try Online

+0

你不需要添加1來格式化最後一行嗎? –

+0

@DanBracuk在電子表格中,標題行與任何其他行一樣。如果您有25個項目和1個標題行的數據集,則您的電子表格中有26行,如2-26。我們確實有一個硬編碼偏移量,用於格式化範圍的開始,這與1 +標題行數相同。 – Twillen

+0

因此編輯你的答案實際上會改善它。 –

相關問題