[D10.4] Range Excel Via RefToCell : simplification du code
Bonjour,
j'ai récupéré un code d'export de AdoDataset vers excel qui fait appel à une function qui ne supporte que 26 colonnes.
L'appel a cette fonction me sert a alimenter la première ligne de la feuille excel avec le nom des champs.
Code:
1 2 3 4 5 6 7 8 9 10
|
for Index := 0 to AdoDataSet1.fields.count - 1 do
Sheet.Range[RefToCell(1, Index + 1), RefToCell(1, Index + 1)].Value := AdoDataSet1.Fields.Fields[Index].DisplayLabel;
.....
function RefToCell(ARow, ACol: Integer): string;
begin
Result := Chr(Ord('A') + ACol - 1) + IntToStr(ARow);
end; |
J'ai commencé à modifier RefToCall car mes dataset on bien plus de colonnes. ce code modifié fonctionne parfaitement mais je voudrais le simplifier car il est .. stupide..
Je ne trouve pas la logique en utilisant par exemple INT et MOD pour le simplifier.
le voici dans sa version limitées à 78 colonnes.
Code:
1 2 3 4 5 6 7 8
| function RefToCell(ARow, ACol: Integer): string;
begin
case Acol of
1..26 : Result := Chr(Ord('A') + ACol - 1) + IntToStr(ARow);
27..52 : Result := 'A' + Chr(Ord('A') + ACol - 27) + IntToStr(ARow);
53..78 : Result := 'B' + Chr(Ord('A') + ACol - 53) + IntToStr(ARow);
end;
end; |
Si l'un d'entre vous à une idée ou une version dynamique et courte, j'en serais ravi.
Excellente journée a tous.
PS : j'espère que j'ai balisé ma demande correctement, car ça fait des années que je n'ai plus pointé le bout de mon nez ici.:D