Füllt einen klassischen XLS-Tabellenblattbereich durch Aufrufen von Anwendungscode für jeden Zellenwert
Syntax
type
TXLSCellWriteEvent = procedure(
Sender: TObject;
SheetIndex, Row, Col: Integer;
var Value: Variant;
var Skip: Boolean;
var Cancel: Boolean) of object;
function WriteCells(ARange: WideString; Callback: TXLSCellWriteEvent): Integer; overload;
function WriteCells(ARow1, ACol1, ARow2, ACol2: Integer; Callback: TXLSCellWriteEvent): Integer; overload;
Hinweise
Die Zeichenfolge-Überladung akzeptiert einen A1-Stil-Bereich wie A1:C100. Die numerische Überladung verwendet 1-basierte Zeilen- und Spaltenindizes. Bereiche werden normalisiert, wenn die Startzeile oder -spalte größer ist als die Endzeile oder -spalte
Zellen werden in Zeilen-Major-Reihenfolge angefordert. Setzen Sie Value im Rückruf, um die aktuelle Zelle zu schreiben. Setzen Sie Skip auf True, um die aktuelle Zelle unverändert zu lassen. Setzen Sie Cancel auf True, um nach dem aktuellen Rückruf zu stoppen. Der Rückgabewert ist die Anzahl der geschriebenen Zellen
Diese Methode schreibt in das geladene Tabellenblattmodell. Sie ist ein kompakter rückrufbasierter Schreibe-Helfer, kein Datei-Streaming-Speichermodus
Beispiel
procedure TForm1.WriteCell(Sender: TObject; SheetIndex, Row, Col: Integer;
var Value: Variant; var Skip: Boolean; var Cancel: Boolean);
begin
if Col = 3 then
begin
Skip := True;
Exit;
end;
Value := Format('R%dC%d', [Row, Col]);
if Row >= 1000 then
Cancel := True;
end;
Written := Workbook.Sheets[1].WriteCells('A1:D2000', WriteCell);
Siehe auch