begin process at 2012 02 13 16:09:51
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Base de Donnees

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

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


 Information sur la source

Note :
6 / 10 - par 8 personnes
6,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
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 :27 208

Auteur : surfzoid

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (37)
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 !

 Sources du même auteur

Source avec Zip Source .NET (Dotnet) EXPORTER LE CONTENU D'UN DATAGRIDVIEW VERS EXCEL OU N IMPORT...
Source avec Zip Source .NET (Dotnet) VCARDPARSER
Source avec Zip Source .NET (Dotnet) CVSTOXLS
FILTRER UNE COLONE EXCEL PAR COULEUR GRACE AU VB D'OFFICE
Source avec Zip Source .NET (Dotnet) ABRÉVIATOR

 Sources de la même categorie

Source avec Zip Source avec une capture BIEN ADMINISTRER LES ETUDIANTS ET LEURS CÔTES par okosa
Source avec Zip VBA EXEL GESTION DE PERSONEL NOUVEAU CONTRAT DE TRAVAI par oudlarbi
Source avec Zip Source avec une capture CREATION D'UN OBJET D'ACCÈS AUX DONNÉES par okosa
Source avec Zip Source .NET (Dotnet) MISAHORAIRE par MdelM
Source avec Zip Source avec une capture BASEDEDONNEES,GESTIONDEMALADES,DATABASSE par shadkitenge

 Sources en rapport avec celle ci

Source avec Zip OUVRIR TOUS LES FICHIERS EXCEL D'UN DOSSIER ET DE SES SOUS-D... par Unforgiven3303
Source avec Zip Source .NET (Dotnet) EXPORTER LE CONTENU D'UN DATAGRIDVIEW VERS EXCEL OU N IMPORT... par surfzoid
Source avec Zip Source avec une capture LISTER FICHIERS D'UN DOSSIER par fedexx40
Source avec Zip COMPARATEUR EXCEL EN MASSE, AMÉLIORATIONS par GMY
Source avec Zip Source avec une capture RECUPERER DES INFOS OU LES DONNÉES D'UN GRAPHIQUE SANS UTILI... par bigfish_le vrai

Commentaires et avis

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"

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

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)

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

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

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

Commentaire de surfzoid le 12/07/2006 23:17:47

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

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

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 ?

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"

Commentaire de surfzoid le 29/07/2007 13:26:35

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

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. ++

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

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 ;)

Commentaire de surfzoid le 11/01/2008 20:35:28

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

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

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

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!!

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

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???

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

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!!

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!!

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).

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

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 ....

Commentaire de erokage le 25/05/2009 11:34:15

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

Commentaire de kidavra le 09/07/2009 10:55:38 10/10

10 pour ce code
ça marche trèès bien merci pour tes efforts

Commentaire de surfzoid le 09/07/2009 12:08:17

Merci a toi noble programmeur qui passer par là :-)

Commentaire de oms7 le 15/08/2009 09:18:18

Merci SURFZOID pour ce code que me sauve la vie là, je suis débutant, et il m'a donc fait diminuer mon temps de travail.

Mais je vais signaler un bug, si on peut appeler ça ainsi:
lorsqu'on enregistre le fichier une première fois depuis le début de l'application, il enregistre un fichier vide. Est-ce que quelqu'un pourrait m'aider à résoudre ce problème.

Commentaire de surfzoid le 15/08/2009 12:41:02

As tu suivit les conseil de RoNaaK ou as tu utilisé la méthode de erokage?
Cela fait très, très longtemps que j'ai mis le nez dans ce code , il y a peut être comme l'expliquer erokage, deux fois la boite de dialogue, ce qui peut être la source de ton problème.

Nota : a l'époque, VS 2003, les datagrid and co, c'était pas terrible comparer a maintenant avec VS2008/MonoDevelop, il y a beaucoup plus simple et efficace maintenant pour cracher un .csv.

J'essayerai de la refaire, mais je suis passer au C# depuis plusieurs années.

Petit sondage, qui voudrai une source simplifiée pour le même résultat ?

Commentaire de surfzoid le 15/08/2009 13:38:54

Okay, comme juste avant d'aller manger j'ai réussit a avoir un résultat satisfaisant, voici donc la version "moderne", simplifiée et commentée :
http://www.vbfrance.com/codes/EXPORTER-CONTENU-DATAGRIDVIEW-VERS-EXCEL-IMPORTE-QUELLE-AUTRE_50445.aspx
Il est a noter que la modernisation remplace le vieux DataGrid de VS 2003 par le nouveau DataGridView de VS2005/2008

Commentaire de oms7 le 18/08/2009 09:44:27

Merci encore, je vais essayer ton nouveau code sur VS2005 et je t'enverrai des commentaires.

Commentaire de surfzoid le 18/08/2009 12:25:52

oms7 : Si mon autre source te convient , peut tu lui mettre une note s'il te plait ?

Commentaire de oms7 le 19/08/2009 10:19:07 7/10

Je donne 7/10

Commentaire de surfzoid le 19/08/2009 13:37:40

:-)

Commentaire de daless94 le 25/03/2011 17:19:40

Alors moi j'aimerais relancé ce post vieux de "2ans".
Je comprend tout ce que tu fais mais je n'arrive pas à utiliser :

       Dim DsAuthors1 As DataSet
        Dim tablename
        tamponxls = vbNullString
        iCnt = Me.BindingContext(DsAuthors1, tablename).Count

tablename doit etre declaré en quoi ?
Et moi je dispose de 5 colonne mais de 15 lignes alors des que je veux intervertir les i avec les Integer ça me donne des erreurs :/

Merci

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

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 Exporter des données sur excel !!!! [ par mick1819 ] BonjourJ'aimerai exporter des données dans un fichier excel.... Je sais comment créer le fichier et exporter les données, mais je ne sa exporter une table vers un fichier excel [ par clemusdk ] Je voudrai créer un formulaire qui permette d'exporter une ou plusieurs tables de ma base de données vers un fichier excel.Comment puis-je r Exporter un fichier .xml vers une feuille excel avec vb6.. [ par got31 ]  Bonjour a tous!   J'aimerai savoir si il serait possible grace à un petit script vb d'automatiser cette exportation ainsi qu 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..


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,092 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales