2017-03-21 3 views
3

Ich bin in den Prozess der Coldfusion lernen und ich versuche, mit Tabellen arbeiten mit spreadsheetFormatRows(spreadsheetObject, dataFormat, rangeOfRowsFormated)Wie kann ich die Anzahl der Zeilen im cfspreadsheet-Objekt definieren?

Wie kann ich den Bereich alle Zeilen enthalten, mit Ausnahme der Kopfzeile, die für Spaltenname ist? Gibt es eine Funktion, die die Anzahl der Zeilen im cfspreadsheet-Objekt zurückgibt, damit ich den Bereich auf '2-rowCount' setzen kann?

Ich versuchte spreadsheetFormatRows(theSheet, headerFormat, 2-50); und funktioniert gut und formatiert Zeilen 2 bis 50, aber ich möchte nicht so hart codieren.

Vielen Dank im Voraus.

+1

Verfolgen Sie die Anzahl der Zeilen tun, wie Sie sie füllen und den Wert einer Variablen speichern. Einfacher, wenn sie Abfrageergebnisse sind, verwenden Sie die Recordcount-Variable von cfquery. –

+0

Ja, es ist eine Abfrage und ja recordcount funktioniert perfekt. Schreibe es als Antwort, damit ich es als das richtige für diejenigen markieren kann, die kommen, um den Beitrag später zu lesen. Vielen Dank. – DoArNa

Antwort

1

Behalten Sie die Anzahl der Zeilen beim Auffüllen im Auge und speichern Sie den Wert in einer Variablen. Einfacher, wenn sie Abfrageergebnisse sind, verwenden Sie die Recordcount-Variable von cfquery.

Denken Sie daran, 1 hinzuzufügen, damit Sie die letzte Zeile formatieren.

3

Das Tabellenkalkulationsobjekt verfügt über ein Attribut rowcount. Sie können 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

Müssten Sie nicht 1 hinzufügen, um die letzte Zeile zu formatieren? –

+0

@DanBracuk In der Tabelle sind Kopfzeile/n wie jede andere Zeile. Wenn Sie einen Datensatz mit 25 Elementen und einer Kopfzeile haben, haben Sie in Ihrer Tabelle 26 Zeilen, also 2-26. Wir haben einen hartcodierten Offset für den Anfang des formatierten Bereichs, der gleich 1 + Kopfzeilenanzahl ist. – Twillen

+0

Die Bearbeitung Ihrer Antwort wird es dann tatsächlich verbessern. –

Verwandte Themen