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.
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..
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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;
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.
Si l'un d'entre vous à une idée ou une version dynamique et courte, j'en serais ravi.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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;
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.![]()
Partager