bj a ts
j'ai une table yacine et un fichier de exel
comment copier les donnés d'une table vers un fichier exel
je vous remerci d'avance
bj a ts
j'ai une table yacine et un fichier de exel
comment copier les donnés d'une table vers un fichier exel
je vous remerci d'avance
tu peux ouvrir ta table, tu génère un fichier csv, et tu ouvre ce fichier avec ce code
tu peux générer le fichier totalement en Automation, c'est assez long à écrire ... et la gestion des themes c'est une horreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 ExcelOle := CreateOleObject('Excel.Application'); try ExcelOle.Visible := False; ExcelOle.WorkBooks.Open(NomDuFichierTemporaire); ExcelOle.WorkBooks[1].WorkSheets[1].Name := 'Nom de la Page'; ExcelOle.Cells.Select; ExcelOle.Selection.Columns.AutoFit; ExcelOle.Cells[1, 1].Select; ExcelOle.ActiveWorkBook.SaveAs(Filename := NomDuFichierDefinitif, FileFormat := -4143); // Convertit CSV en Excel DeleteFile(NomDuFichierTemporaire); finally ExcelOle.Visible := True; ExcelOle.UserControl := True; ExcelOle := Unassigned; end;
voir aussi TMS FlexCell, c'est plus court, mais tu n'as pas toutes les possibilités !
merci
mais j'ai pas compri votre code, c'est quoi ça ( ExcelOle )
c'est une variable
ça se devine avec l'affectation de Unassigned !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 var ExcelOle: Variant;
merci
moi je veux afficher un fichier exel dans un dbgrid, c'est a dir dans une table
faut savoir ce que tu veux
comment copier les donnés d'une table vers un fichier exeldans cas, tu peux utiliser un driver ADO pour Excel, j'avais trouvé cela une fois, où l'on pouvait ouvrir un fichier Excel comme une Table ACCESS, c'est vieux, j'ai vu ça à l'époque de Win98, je ne l'ai jamais retrouvé (je n'ai pas cherché faut dire) ...moi je veux afficher un fichier exel dans un dbgrid, c'est a dir dans une table
Il n'y a pas besoin de chercher bien loin... C'est une fonctionnalité native de MS Jet 4.
Lorsque tu configures la chaîne de connexion :
- il suffit de choisir le provider "Microsoft Jet 4.0 OLE DB Provider" (comme pour ACCESS).
- Tu choisis le fichier Excel en guise de base de données.
- Enfin (et la il faut le savoir ), dans le dernier onglet, il faut configurer une "Extended Properties" avec la valeur "Excel 8.0"
Ensuite tu peux manipuler les feuilles Excel (on les cellules nommées) comme s'il s'agissait de tables dans ta base de données.
Très pratique, pour y arriver j'ai du mettre le propriété TableDirect à true dans le composant TAdoTable, et dans la propriété TableName on peut choisir parmis les feuilles Excel.
Ne pas oublier
Merci Franck SORIANO et chaplin, il y a quelques subtilités à connaitre, je ferais quelques tests, cela m'intéresse ENORMEMENT moi aussi, ça fait tellement longtemps que je ne l'ai pas refait ... surtout à l'époque j'avais utilsé un composant TExcelTable (le vrai nom était bien plus pourri mais je ne m'en rappele pas) pour Delphi 3 et non directement avec le TADOTable qui n'existait pas !
Partager