Remplit une plage de feuille XLS classique en appelant du code applicatif pour chaque valeur de cellule
Syntaxe
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;
Remarques
La surcharge chaîne accepte une plage de style A1 telle que A1:C100. La surcharge numérique utilise des index de lignes et colonnes en base un. Les plages sont normalisées quand la ligne ou colonne de départ est supérieure à la ligne ou colonne de fin
Les cellules sont demandées dans l'ordre ligne par ligne. Définissez Value dans le callback pour écrire la cellule courante. Définissez Skip à True pour laisser la cellule courante inchangée. Définissez Cancel à True pour s'arrêter après le callback courant. La valeur renvoyée est le nombre de cellules écrites
Cette méthode écrit dans le modèle de feuille de calcul chargé. C'est une fonction d'aide d'écriture compacte à base de callbacks, pas un mode d'enregistrement en streaming de fichier
Exemple
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);
Écrivains typés de lignes et de colonnes
TXLSWorksheet et TXLSXWorksheet acceptent également des tableaux ouverts numériques, de chaînes et de variants sans callback par cellule
function WriteFloatRowValues(ARow, ACol: Integer; const Values: array of Double): Integer;
function WriteStringRowValues(ARow, ACol: Integer; const Values: array of WideString): Integer;
function WriteRowValues(ARow, ACol: Integer; const Values: array of Variant): Integer;
function WriteFloatColumnValues(ARow, ACol: Integer; const Values: array of Double): Integer;
function WriteStringColumnValues(ARow, ACol: Integer; const Values: array of WideString): Integer;
function WriteColumnValues(ARow, ACol: Integer; const Values: array of Variant): Integer;
Les coordonnées sont en base un. Les valeurs continuent vers la droite pour les écrivains de lignes et vers le bas pour les écrivains de colonnes. Les écritures sont rognées à la limite de lignes ou de colonnes du format de fichier actif, des coordonnées de départ invalides renvoient zéro, et le résultat est le nombre de valeurs écrites. Les écrivains XLSX accroissent la capacité des collections géométriquement au fil des lots répétés
Revenue[0] := 1250.0;
Revenue[1] := 980.5;
Revenue[2] := 1425.25;
Written := Sheet.WriteFloatColumnValues(2, 4, Revenue);
Voir aussi