tout le monde, j'aimerais savoir comment envoyer les données contenues dans mon ADOQuery vers une feuille de calcul Excel ou une page Word (dans un tableau)?
tout le monde, j'aimerais savoir comment envoyer les données contenues dans mon ADOQuery vers une feuille de calcul Excel ou une page Word (dans un tableau)?
Il est difficile de retrouver ses erreurs lorsqu'on est persuadé que son code est juste...
Groupe des développeurs ivoiriens
Salut,
il y a pas mal d'exemple d'export sur le forum vers excel et également l'utilisation de ADO.
Regarde cela http://www.developpez.net/forums/d67...id-vers-excel/ sa pourra surement te donner des pistes...
Merci à vous, à vrai dire je n'ai aucune notion sur les composants à utiliser alors si vous pouvez me donner la marche à suivre je crois que ça m'aidera énormément
Concrètement voici mon problème:
Je récupère les résultats d'une requête dans mon ADOQuery pour les afficher dans un DBGrid via un DataSource et c'est le contenu de mon DBGrid (ADOQuery en quelque sorte) que je veux envoyer dans un fichier Excel.
Il est difficile de retrouver ses erreurs lorsqu'on est persuadé que son code est juste...
Groupe des développeurs ivoiriens
Salut;
D'abord faut voir coté FAQ y a des exemples "prêt à l'emploi" ensuite le DBGrid affiche les données de ton Query donc faut penser requête et pas affichage .
Bon courage ou Bonne Chance (selon le contexte)
Mon blog sur WordPress
Je n'ai pas de problème avec la génération des résultats. J'arrive à remplir correctement mon DBGrid. Mon problème est comment envoyer le tout vers un fichier Excel.
Il est difficile de retrouver ses erreurs lorsqu'on est persuadé que son code est juste...
Groupe des développeurs ivoiriens
salut
regardes ici peut etre que ça t'aidera
http://www.developpez.net/forums/d80...db-vers-excel/
ou
http://www.developpez.net/forums/d71...excel-delphi7/
dans ces exemples c'est pour envoyer des donnees du BDE vers excell
pour ton cas a la place des tables tu vas utiliser ton DBGRID,
tu lis les cases de ton DBGRID une a une et tu les copies dans le fichier excell.
bonne chance
Merci beaucoup à vous. Mais le problème qui se pose est qu'il ne copie que 13 enregistrements sur une centaine:
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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 var vMSExcel, vXLWorkbooks, vXLWorkbook, vWorksheet : variant; i,j:integer; begin // demarrer excel vMSExcel := CreateOleObject('Excel.Application'); vMSExcel.Visible := true; //creer un nouveau fichier xls vXLWorkbooks := vMSExcel.Workbooks; vXLWorkbook := vXLWorkbooks.Add; //acceder a une feuil vWorksheet := vXLWorkbook.WorkSheets['feuil1']; //ecrire les titres des champs for i:=0 to ibtable1.FieldCount-1 do vworksheet.cells.item[1,i+1].value:=ibtable1.Fields[i].FieldName; //ecrire les données ibtable1.First; for j := 1 to ibtable1.RecordCount do begin for i:=0 to ibtable1.FieldCount-1 do begin vworksheet.cells.item[j+1,i+1].value:=ibtable1.Fields[i].AsString; end; ibtable1.Next; end; end;
Il est difficile de retrouver ses erreurs lorsqu'on est persuadé que son code est juste...
Groupe des développeurs ivoiriens
salut
13 enregistrements c'est déja un début la méthode est juste, moi ça a toujours marchée
il faut voir ce que contient ta ibtable1 lors de l'execution de ce code
essaies de lier ibtable1 a un DBGRID, pour voir les donnes quelle contient
car le code est juste
bonne chance
J'ai envoyé le contenu de ma table dans un DBGrid et il a affiché une centaine d'enregistrements. Mais l'export ne contient toujours pas tous les enregistrements.
Néanmoins je vais essayer d'exporter le contenu du DBGrid au lieu de le faire directement avec la table (mais ça m'étonnerais vraiment d'avoir des résultats différents) et je vous tiendrais au courant.
Il est difficile de retrouver ses erreurs lorsqu'on est persuadé que son code est juste...
Groupe des développeurs ivoiriens
essaies de faire ça pour voir si l'erreur vien de la boucle ou de ibtable1
bonne chance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 //ecrire les données ibtable1.First; for j := 1 to ibtable1.RecordCount do begin for i:=0 to ibtable1.FieldCount-1 do begin vworksheet.cells.item[j+1,i+1].value:=inttostr(j); end; ibtable1.Next; end; end;
J'ai finalement trouvé
J'avais tout simplement posé le curseur à la 13 ème ligne
Lorsque je l'envoi à la dernière ligne, tous les enregistrements sont exportés correctement.
Grand à vous
Il est difficile de retrouver ses erreurs lorsqu'on est persuadé que son code est juste...
Groupe des développeurs ivoiriens
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager