Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

EXPORTER LE CONTENU D'UN DATAGRID VERS EXCEL OU N IMPORTE QUELLE AUTRE FICHIER TABULÉ


Information sur la source

Catégorie :Base de Donnees Source .NET ( DotNet ) Classé sous : exporter, fichier, excel Niveau : Initié Date de création : 26/07/2005 Date de mise à jour : 05/02/2009 15:50:16 Vu : 20 676

Note :
5,17 / 10 - par 6 personnes
5,17 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (27)
Ajouter un commentaire et/ou une note


Description

ce bout de code permet de recuperer tout le contenu d' une grille de datagrid sous .NET de le coller dans un richtextbox (propriété visible à false)et de l'enregistrer sous un fichier avec les extention xls,txt ou rtf pour que ensuite si on double clique dessu excel l'ouvre comme il faut.
 

Source

  • Dim i
  • Dim iCnt As Integer
  • Dim tamponxls As String
  • tamponxls = vbNullString
  • iCnt = Me.BindingContext(DsAuthors1, tablename).Count
  • For i = 0 To iCnt
  • If i = iCnt Then Exit For
  • tamponxls = tamponxls & (Me.DataGrid1.Item(i, 1)) & vbTab
  • tamponxls = tamponxls & (Me.DataGrid1.Item(i, 2)) & vbTab
  • tamponxls = tamponxls & (Me.DataGrid1.Item(i, 3)) & vbTab
  • tamponxls = tamponxls & (Me.DataGrid1.Item(i, 4)) & vbTab
  • tamponxls = tamponxls & (Me.DataGrid1.Item(i, 5)) & vbTab
  • tamponxls = tamponxls & (Me.DataGrid1.Item(i, 6)) & vbTab
  • tamponxls = tamponxls & (Me.DataGrid1.Item(i, 7)) & vbTab
  • tamponxls = tamponxls & (Me.DataGrid1.Item(i, 8)) & vbTab & vbCr
  • Next i
  • RichTextBox1.Text = tamponxls
  • ' Displays a SaveFileDialog so the user can save the Image
  • ' assigned to Button2.
  • Dim saveFileDialog1 As New SaveFileDialog
  • saveFileDialog1.Filter = "Excel|*.xls|Texte|*.txt|Richtext|*.rtf"
  • saveFileDialog1.Title = "Sauver le fichier exporter sous ?"
  • 'saveFileDialog1.ShowDialog()
  • If saveFileDialog1.ShowDialog() = DialogResult.OK Then
  • RichTextBox1.SaveFile(saveFileDialog1.FileName, _
  • RichTextBoxStreamType.PlainText)
  • End If
        Dim i
        Dim iCnt As Integer
        Dim tamponxls As String
        tamponxls = vbNullString
        iCnt = Me.BindingContext(DsAuthors1, tablename).Count
        For i = 0 To iCnt
            If i = iCnt Then Exit For
            tamponxls = tamponxls & (Me.DataGrid1.Item(i, 1)) & vbTab
            tamponxls = tamponxls & (Me.DataGrid1.Item(i, 2)) & vbTab
            tamponxls = tamponxls & (Me.DataGrid1.Item(i, 3)) & vbTab
            tamponxls = tamponxls & (Me.DataGrid1.Item(i, 4)) & vbTab
            tamponxls = tamponxls & (Me.DataGrid1.Item(i, 5)) & vbTab
            tamponxls = tamponxls & (Me.DataGrid1.Item(i, 6)) & vbTab
            tamponxls = tamponxls & (Me.DataGrid1.Item(i, 7)) & vbTab
            tamponxls = tamponxls & (Me.DataGrid1.Item(i, 8)) & vbTab & vbCr
        Next i
        RichTextBox1.Text = tamponxls
        ' Displays a SaveFileDialog so the user can save the Image
        ' assigned to Button2.
        Dim saveFileDialog1 As New SaveFileDialog
        saveFileDialog1.Filter = "Excel|*.xls|Texte|*.txt|Richtext|*.rtf"
        saveFileDialog1.Title = "Sauver le fichier exporter sous ?"
        'saveFileDialog1.ShowDialog()

        If saveFileDialog1.ShowDialog() = DialogResult.OK Then
            RichTextBox1.SaveFile(saveFileDialog1.FileName, _
            RichTextBoxStreamType.PlainText)
        End If

Historique

05 février 2009 15:50:16 :
saveFileDialog1.ShowDialog() était appelé 2 fois !

Commentaires et avis

signaler à un administrateur
Commentaire de surfzoid le 16/08/2005 15:57:52

Tien on m'a mis un 7/10 les commentaires lié à cette notes serais toujours les bien venu
Merci à toi "étranger"

signaler à un administrateur
Commentaire de alprogrammeur le 17/11/2005 09:10:30

Je cherche comment exporter un fichier csv    
mon prob, je sais pas ce que signifie 'bindingcontext'
et savefiledialog
il me met erreur
merci

  Dim i
        Dim iCnt As Integer
        Dim tamponxls As String
        tamponxls = vbNullString
        iCnt = Me.BindingContext(DsAuthors1, tablename).Count
        For i = 0 To iCnt
            If i = iCnt Then Exit For
            tamponxls = tamponxls & (Me.DataGrid1.Item(i, 1)) & vbTab
            tamponxls = tamponxls & (Me.DataGrid1.Item(i, 2)) & vbTab
            tamponxls = tamponxls & (Me.DataGrid1.Item(i, 3)) & vbTab
            tamponxls = tamponxls & (Me.DataGrid1.Item(i, 4)) & vbTab
            tamponxls = tamponxls & (Me.DataGrid1.Item(i, 5)) & vbTab
            tamponxls = tamponxls & (Me.DataGrid1.Item(i, 6)) & vbTab
            tamponxls = tamponxls & (Me.DataGrid1.Item(i, 7)) & vbTab
            tamponxls = tamponxls & (Me.DataGrid1.Item(i, 8)) & vbTab & vbCr
        Next i
        RichTextBox1.Text = tamponxls
        ' Displays a SaveFileDialog so the user can save the Image
        ' assigned to Button2.
        Dim saveFileDialog1 As New SaveFileDialog
        saveFileDialog1.Filter = "Excel|*.xls|Texte|*.txt|Richtext|*.rtf"
        saveFileDialog1.Title = "Sauver le fichier exporter sous ?"
        saveFileDialog1.ShowDialog()
  
        If saveFileDialog1.ShowDialog() = DialogResult.OK Then
            RichTextBox1.SaveFile(saveFileDialog1.FileName, _
            RichTextBoxStreamType.PlainText)
        End If

signaler à un administrateur
Commentaire de surfzoid le 28/11/2005 13:52:50

comme indiquer ds le titre ce bout de code sert à :
EXPORTER LE CONTENU D'UN DATAGRID VERS EXCEL OU N IMPORTE QUELLE AUTRE
et exporter un fichier csv vers je ne sais quoi d'ailleur
donc la source est issue d un DATAGRID (grille qui affiche le contenu d'une base de donnée) et exporter dans un fichier texte (cvs,xls, rtf ou ce que tu veux ça reste plus ou moins du texte)

signaler à un administrateur
Commentaire de surfzoid le 22/06/2006 16:16:15

mais bon sang qui mets des notes sans dire quoi que ce soit, ont se demande vraiment si le code a été utiliser
lol

signaler à un administrateur
Commentaire de skymohamed le 10/07/2006 19:42:14

Salut tt le monde
S'il vous plai si vs avé déja trouver la solution d'export de données d'un datagrid vers excel, faite moi signe car vs allez me sauver la vie.
safé 4 mois que je cherche.
skymohamed@caramail.com
merci d'avance

signaler à un administrateur
Commentaire de surfzoid le 12/07/2006 23:16:23

Ben il marche pas mon bout de code pour faire un csv ?
C'est avec VS 2003 mais je pense qu'il fonction aussi avec VS2005

signaler à un administrateur
Commentaire de surfzoid le 12/07/2006 23:17:47

quand au fait de mal noté ce serait bien d'expliquer pourquoi

signaler à un administrateur
Commentaire de surfzoid le 14/07/2006 12:11:36

je ne sais quelle note cela vaut (lol( mais as tu essayer les explication qui sont donnée ici :
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=375554&SiteId=1

signaler à un administrateur
Commentaire de medee le 25/04/2007 10:38:44

Salut, j'ai également un probleme, au passage de BindingContext, survient une erreur {"La référence d'objet n'est pas définie à une instance d'un objet." }
L'objet de type datasource passé en parametre n'est pas null, je n'arrive pas à identifier d'ou viens le probleme.
AlPROGRAMMEUR as tu résolu ton problème ?

signaler à un administrateur
Commentaire de surfzoid le 25/04/2007 11:34:38

BindingContext = Context des donnée liée
DsAuthors1 = Dataset de contenu des données d'une base de donnée
Tablename = nom de la table ds la BdB
DataGrid1 = Grille de donnée liée a une table de Bdb
Cela reviendrait au meme de dire
iCnt = Me.DataGrid1.items.Count 'Mais ne garentit pas que le dataset a été "Update"

signaler à un administrateur
Commentaire de surfzoid le 29/07/2007 13:26:35

on peut remplacer le binding context en travaillan directement sur le datagridview.item

signaler à un administrateur
Commentaire de telodoo le 17/10/2007 19:12:21

J'ai perdu mon temps a tester le code sous VS2005, ca ne passe pas. ++

signaler à un administrateur
Commentaire de surfzoid le 18/10/2007 00:07:15

Bizare telodoo, tu aurai un peu plus d'info sur ce qui ne marche pas s'il te plais
en effet le principe est trés simple, rudimentaire et peut performant, car en fait il consiste a scuté les cellule d'une grille de donnée une par une, en recupérer les valeurs au fur et amesure et stocké ces valeur dans une string en concatenan les chaine, chaque cellule concaténé ressemble a :
"val cellule & separateur, ou séparateur peut etre un ; ou une , ou un tab, as yu want
puis on ecrit le text ds un fichier.
Pour des question de performance je propose de ramplacer la "string" par une system.text.stringbuilder
c'est mieu

signaler à un administrateur
Commentaire de RoNaaK le 09/01/2008 14:30:48

Sous VS 2k5, petite adaptation necessaire;
iCnt = 12
Car pour mon application je n'exporte que 12 mois, pas besoin de verifier combien il y en aura.
Sinon, dommage que sa n'exporte pas l'intitulé des colonnes.
Bug constaté: la boite de dialogue pour choisir le nom, le format et l'endroit où l'on veut l'enregistrer apparait deux fois consécutive, comme si la 1ere n'était pas pris en compte.
Après verification du code, effectivement lors de la vérifcation de la condition :
If saveFileDialog1.ShowDialog() = DialogResult.OK Then
L'appli relance la boite de dialogue, donc j'ai supprimer la ligne précédente:
saveFileDialog1.ShowDialog()
Et voila.
Je n'ai tester qu'au format excel, je suppose que pour les autres formats il n'y ai aucun bug (je ne voit pas de raison)

PS: pensez aussi a adapter les lignes:
            tamponxls = tamponxls & (Me.Grille.Item(i, 1)) & vbTab
            tamponxls = tamponxls & (Me.Grille.Item(i, 2)) & vbTab
            tamponxls = tamponxls & (Me.Grille.Item(i, 3)) & vbTab & vbCr
en fonction de votre tableau, c'est comme pour iCnt = 12, 12 car j'avai 12 lignes
Ici j'ai 3 colonnes (sans compter la colonnes de ma clef primaire qui est la N°0) mais qui n'est pas pris en compte dans ce code. Donc supprimer celle que vous avez en trop, ou rajoutez en si besoin. Et n'oublier pas le & vbTab & vbCr sur la derniere ligne qui permet de faire un retour a la ligne sinon votre tableau ne sera pas disposé en colonne mais sur une seule ligne.
Voila, j'espere que pour ceux qui n'ont pas réussit à l'adapter sous VS 2005 n'auront plus de problème.

Merci surfzoid pour ce code ;)

signaler à un administrateur
Commentaire de surfzoid le 11/01/2008 20:35:28

tchouuuuu, enfin, merci  RoNaaK..........

signaler à un administrateur
Commentaire de sushi59520 le 25/11/2008 15:23:05

Merci bcp pour ce code, il m'a été très utile.
Cependant, est-il possible de récupérer dans le fichier Excel les titres de mes colonnes?
Si oui, comment ?
Merci d'avance

signaler à un administrateur
Commentaire de surfzoid le 25/11/2008 16:12:40

oui, chaque colonne d'une datagrid a une propriété header ou/et name
donc un truc du genre
for each datagridcolum Clm in mydatagriview.collums

devrait faire l'affaire

signaler à un administrateur
Commentaire de bougachouch le 20/01/2009 16:33:59

mais ,ça marche pas pour moi je sais pas pk ,il me donne comme message d'erreur excel et xsl non reconnu!!

signaler à un administrateur
Commentaire de surfzoid le 20/01/2009 18:35:27

putot que d'enregistrer ton fichier en .xsl ou en fait .xls , enregistre le en .csv

signaler à un administrateur
Commentaire de Xavleb le 26/01/2009 11:18:44

J'ai un pb, je suis en developpement web et j'ai comme message pour (Me.Grille.Item(i, 1)) :
'item n'est pas un membre de system.web.ui.webcontrol.datagrid'
Quelqu'un sait quel controle utiliser à la place???

signaler à un administrateur
Commentaire de surfzoid le 27/01/2009 09:55:17

Décidément, ma  note descend encore, et comme toujours sans commentaire, je vois que depuis toute ces année, les gens qui fréquente VBfrance, sont persuadé de ce trouvé sur telecharger.com et que tout leur est dut, une note comme ça est utile et constructive quand le commentaire vas avec, le but d'une communauté, c est que l union fait la force .

Xavleb : tu tombe sur un de mes mauvai jours et vu le niveau de question je te conseil de d abord jetté un coup d'oeil a la section tutorial

signaler à un administrateur
Commentaire de Ouggada le 05/02/2009 14:25:16 9/10

Un pti 9 car mes professeur m'ont toujours dit que la note parfaite n'existait pas....
Cela étant voila un code super bien fait (pour les initiés en tous cas car cela manque un peu de commentaires) qui va bien me servir.
Cependant petite question : à quoi correspond le "DsAuthors1" car j'ai beau chercher nada!!
Sur ce bonne continuation et courage il n'y a pas que des leechers...
A bon entendeur salut!!

signaler à un administrateur
Commentaire de Ouggada le 05/02/2009 14:28:19

oups j'avais pas vu... que c'était le dataset...
oh mer noire!!
Merci quand meme pour cette source!!
Tcho!!

signaler à un administrateur
Commentaire de surfzoid le 05/02/2009 15:45:49

Merci a toi !
C'est vrai je code vraiment trop a l'arache, lol, c est l habitude de produire toujours plus vite (mauvaise habitude d'ailleurs).

signaler à un administrateur
Commentaire de erokage le 25/05/2009 09:56:13

Sinon moi j'ai sa mais je fonctionne sur v_b 2008 doc je ne garantie rien sur les versions enter rieur:

Dim c, j As Integer

        Dim xl As New Object

        xl = CreateObject("Excel.application")



        xl.visible = True

        xl.workbooks.Add()

        For c = 0 To DataGridView1.Columns.Count - 1

            xl.cells(c + 1, 1) = DataGridView1.Columns(c).Name

        Next

        For l As Integer = 0 To DataGridView1.Rows.Count - 1

            For c = 0 To DataGridView1.Rows.Count - 1

                xl.cells(l + 1, j + 1) = DataGridView1.Rows(l).Cells(c).Value

            Next c

        Next l

Tout de suite le fichier excel s'ouvre mais je ne suis pas parvenu a récupérer tout le datagrid avec le bonne mise en page
ps:si quelqu'un a une idée

signaler à un administrateur
Commentaire de surfzoid le 25/05/2009 11:17:18

Tu passe par du COM/OCX , style VB6/VBScrip, ton code ne fonctionnera pas sous Linux, de plus tu vas subir les mésaventures des différentes version de MS Office, c'est pour cela que a l'époque, j avais choisit la solution du csv, facile a adapter au évolution du .Net et des systèmes ....

signaler à un administrateur
Commentaire de erokage le 25/05/2009 11:34:15

oui mais il est prévu pour tourner seulement sous windows

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

exporter des feuille s excel dans un autre fichier excel [ par yoann_b29 ] bonjour,Je travail en vba excel avec des userform.J'aimerais pouvoir exporter une page excel vers un autre fichier excel (en gros : copier/coller une exporter un fichier.rpt vers excel urgent! [ par fodbe ] bonjour est ce que quelqu'un peut me dire comment on peut exporter un fichier d'extension .rpt d'un repertoire donné vers excel avec vb6.merci.. importer le fichier excel et l'exporter dans la base des données sql server 2000 en utilisant le code vb6.0 [ par munemmy ] Bonjour à tous, J'aimerais demander s'il y a quelqu'un qui peut aider à me dire comment importer un fichier excel par le visual basic 6.0 et l'exporte Exporter requete Access dans un fichier Excel [ par Dezouille ] Bonjour à la communauté,alors voilà mon soucis. Comme je l'ai indiqué dans le Sujet, je souhaiterais exporter une requete Access dans un fichier Excel VBA exporter un fichier excel dans un fichier txt en séparnat par des ";" [ par zewriggles ] Bonjour, je posséde un fichier excel que je veux exporter dans un fichier txt, voici ce que je dois faire :             séparer par des point virgule  Exporter un champ vers une cellule d'un fichier Excel existant... [ par Julie ] Salut tout le monde !!!Voilà, j'aimerais exporter un champ d'un formulaire vers un fichier excel existant...Je sais lire la valeur du champ et ouvrir Exportation vers fichier excel avec BO [ par vialstephane ] Bonjour,Je voudrais exporter les données d' une requete Business Object vers un fichier excel en automatique.Je suis arrivé en modifiant la macro dans Exportation vers fichier excel avec BO [ par vialstephane ] Bonjour,Je voudrais exporter les données d' une requete BO vers un fichier excel en automatique.Je suis arrivé en modifiant la macro dans un fichier s Exportation vers fichier excel avec BO [ par vialstephane ] Bonjour,Je voudrais exporter les données d' une requete Business Object vers un fichier excel en automatique.Je suis arrivé en modifiant la macro dans exporter des données excel dans un fichier TXT [ par krisprolss ] Bonjour à tous,J'ai besoin d'exporter le contenu de feuilles Excel dans un fichier TXT. Puisque j'en ai une 20 à a faire quasi quotidienneme


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 13,837 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.