ref = xlsx.CellRange(id, startx, starty, endx, endy[, sheet]) ref = xlsx.CellRange(id, startcell$, endcell$[, sheet])
xlsx.CellRange()
gibt dann eine Iteratorfunktion zurück, die zusammen mit Hollywoods
generischer For-Schleife verwendet werden kann. Die Iteratorfunktion
gibt eine Referenz auf eine Zelle zurück, die an alle Befehle
übergeben werden kann, die mit Zellen wie xlsx.SetCellValue()
oder xlsx.GetCellValue() arbeiten.
Die Übergabe einer Zellreferenz, die von xlsx.CellRange()
zurückgegeben
wird, an Befehlen wie xlsx.SetCellValue() oder xlsx.GetCellValue()
ist viel schneller als das Adressieren der Zelle über ihre Spalten-
und Zeilenposition oder ihre alphanumerische Position (z.B. "A1").
Aus diesem Grund wird empfohlen, xlsx.CellRange()
immer
dann zu verwenden, wenn Sie viele Zellen durchlaufen müssen,
insbesondere in großen XLSX-Dokumenten mit Tausenden von Spalten und Zeilen.
xlsx.CellRange()
unterstützt zwei Möglichkeiten, den Start und
die Zellen anzugeben: Sie können entweder die zu verwendenden
Zellen angeben, indem Sie ihre Spalten- (x) und Zeilenpositionen
(y) in den Argumenten startx/starty
und endx/endy
übergeben.
Diese Positionen beginnen bei 1 für die erste Spalte und Zeile.
Alternativ können Sie die Zellen auch angeben, indem Sie ihre
alphanumerischen Position in den Parametern startcell$
und
endcell$
übergeben, z.B. "A10" für die erste Zelle in der 10. Zeile.
Optional können Sie auch den Index des zu verwendenden Arbeitsblatts
im optionalen Parameter sheet
übergeben (beginnend mit 1 für
das erste Arbeitsblatt). Wenn der Parameter sheet
weggelassen
wird, wird das mit xlsx.SetDefaultSheet() gesetzte
Arbeitsblatt verwendet.
startx
und starty
weggelassen werdenendx
und endy
weggelassen werdenxlsx.Open(1, "test.xlsx") cols = xlsx.GetColumnCount(1) rows = xlsx.GetRowCount(1) For ref In xlsx.CellRange(1, 1, 1, cols, rows) DebugPrint((xlsx.GetCellValue(1, ref))) Next xlsx.Close(1)Der obige Code öffnet die Datei
test.xlsx
und gibt die
Werte aller Zellen aus.