ממלא טווח גליון עבודה XLS קלאסי על ידי קריאה לקוד היישום עבור כל ערך תא
תחביר
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;
הערות
procedure WriteCells(ARange: WideString; Callback: TXLSWriteCellsEvent); overload;
procedure WriteCells(ARow1, ACol1, ARow2, ACol2: Integer; Callback: TXLSWriteCellsEvent); overload;
העמסת המחרוזות מקבלת טווח בסגנון A1 כגון A1:C100. העמסת המספרים משתמשת באינדקסי שורה ועמודה מבוססי-1. טווחים מנורמלים כאשר שורת ההתחלה או העמודה גדולה משורת/עמודת הסוף
התאים מבוקשים בסדר שורות ראשיות. הגדר Value ב-callback לכתיבת התא הנוכחי. הגדר Skip ל-True להשארת התא הנוכחי ללא שינוי. הגדר Cancel ל-True לעצירה אחרי ה-callback הנוכחי. ערך ההחזרה הוא מספר התאים שנכתבו
דוגמה
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);
ראה גם
שיטה זו כותבת למודל גליון העבודה הטעון. היא עוזרת כתיבה מבוסס-callback קומפקטית, לא מצב שמירה בזרמת קבצים