Udfylder et klassisk XLS-regnearksomraade ved at kalde applikationskode for hver cellevaerdi
Syntaks
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;
Bemaerkninger
Strengoverbelastningen accepterer et A1-stil-omraade som f.eks. A1:C100. Den numeriske overbelastning bruger 1-baserede raekke- og kolonneindekser. Omraader normaliseres, naar startraekken eller -kolonnen er stoerre end slutraekken eller -kolonnen
Celler anmodes om i raekkeraekkefoelge. Saet Value i callbacket for at skrive den aktuelle celle. Saet Skip til True for at efterlade den aktuelle celle uaendret. Saet Cancel til True for at stoppe efter det aktuelle callback. Returvaerdien er antallet af skrevne celler
Denne metode skriver til den indlaeste regnearkmodel. Det er en kompakt callback-baseret skrivehjaelper, ikke en fil-streaming-gemtilstand
Eksempel
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);
Se ogsaa