Bonjour,
Jer souhaiterai savoir comment faire pour enregistrer les données d'un TStringGrid ou TDBStringGrid dans un document Excel qui sera créé spécialement pour enregistrer les résultats de la grille
Merci de votre aide
Version imprimable
Bonjour,
Jer souhaiterai savoir comment faire pour enregistrer les données d'un TStringGrid ou TDBStringGrid dans un document Excel qui sera créé spécialement pour enregistrer les résultats de la grille
Merci de votre aide
Rend toi déjà sur la FAQ à cet endroit
Cordialement
regarde dans la faq il y a toutes une section sur comment gérer excel apres tu fai un petit algo pour remplir excel comme tu souhaite du moment que tu as les données a saisir apres c'est assez simple
http://delphi.developpez.com/faq/?page=exceldelphi
Sans avoir besoin d'excel installé sur la machine:
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 procedure XlsWriteCellLabel(XlsStream: TStream; const ACol, ARow: Word; const AValue: string); var L: Word; const {$J+} CXlsLabel: array[0..5] of Word = ($204, 0, 0, 0, 0, 0); {$J-} begin L := Length(AValue); CXlsLabel[1] := 8 + L; CXlsLabel[2] := ARow; CXlsLabel[3] := ACol; CXlsLabel[5] := L; XlsStream.WriteBuffer(CXlsLabel, SizeOf(CXlsLabel)); XlsStream.WriteBuffer(Pointer(AValue)^, L); end; function SaveAsExcelFile(AGrid: TStringGrid; AFileName: string): Boolean; const {$J+} CXlsBof: array[0..5] of Word = ($809, 8, 00, $10, 0, 0); {$J-} CXlsEof: array[0..1] of Word = ($0A, 00); var FStream: TFileStream; I, J: Integer; begin FStream := TFileStream.Create(PChar(AFileName), fmCreate or fmOpenWrite); try CXlsBof[4] := 0; FStream.WriteBuffer(CXlsBof, SizeOf(CXlsBof)); for i := 0 to AGrid.ColCount - 1 do for j := 0 to AGrid.RowCount - 1 do XlsWriteCellLabel(FStream, I, J, AGrid.cells[i, j]); FStream.WriteBuffer(CXlsEof, SizeOf(CXlsEof)); Result := True; finally FStream.Free; end; end;