IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Exporter des données d'un DataGridView vers un fichier word ou excel


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Exporter des données d'un DataGridView vers un fichier word ou excel
    Salut,

    Je suis stagiaire et je travaille actuellement sur une application de gestion du personnel pour une entreprise.

    Ce que le client me demande actuellement c'est de pouvoir imprimer une fiche de renseignements d'un salarié toute prête sous un fichier Word (Ou PDF) complétée avec les données récupérées depuis l'application après avoir sélectionné le l'employé dans un DataGridView et appuyer sur un bouton imprimer.

    Nom : fiche de renseignement.PNG
Affichages : 2405
Taille : 16,5 Ko

    Je n'ai pas encore d'exemple de code car je n'ai pas encore commencé du coup je fais des recherches pour démarrer mais je ne trouve pas de réponses.

    Quelqu'un aurait des pistes pour que je puisse avancer ?

    Merci d'avoir pris le temps de lire ce post.

  2. #2
    Membre émérite
    Homme Profil pro
    Programmeur analyste
    Inscrit en
    Février 2009
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2009
    Messages : 546
    Par défaut
    Pour un DatagridView vers excel on peut faire un copier coller

    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
    sub Export_DatagridView_to_Excel
     
        Dim objXL As New Microsoft.Office.Interop.Excel.Application
        Dim wbXL As Excel.Workbook
        Dim wsXL As New Excel.Worksheet
     
         wbXL = objXL.Workbooks.Open("C:\chemin.xls", , True)
     
         objXL.Visible = True
         wsXL.Range("A1").Select()
     
         copy_ClipBord()
         wsXL.PasteSpecial(NoHTMLFormatting:=True)
     
     
         objXL = Nothing
         wsXL  = Nothing
     
    end sub
    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
    Sub copy_ClipBord()
            Form1.DataGridView1.SelectAll()
     
            Form1.DataGridView1.ClipboardCopyMode = _
            DataGridViewClipboardCopyMode.EnableWithoutHeaderText
     
     
            If Form1.DataGridView1.GetCellCount( _
           DataGridViewElementStates.Selected) > 0 Then
     
                Try
     
                    ' Add the selection to the clipboard.
                    Clipboard.SetDataObject( _
                        Form1.DataGridView1.GetClipboardContent())
     
                Catch ex As System.Runtime.InteropServices.ExternalException
     
                End Try
     
            End If
        End Sub

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour et désolé de ne répondre que maintenant j'vais des examens et je ne pouvais pas trop m'occuper de ça pour le moment.

    Merci pour le retour, mon problème la actuellement est que je n'arrive pas à compiler mon code car visual basic express n'arrive pas à reconaitre l'import Microsoft.Office.Interop.Excel

    Et quand je vais sur "Ajouter une référence" dans l'onglet "Projet", je ne la retrouve ni dans l'onglet "COM" ni dans l'onglet ".NET" du coup je ne sais pas s'il existe sous visual basic express ou si c'est uniquement sous visual studio

  4. #4
    Membre émérite
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2005
    Messages
    562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2005
    Messages : 562
    Par défaut
    Bonjour,

    visual basic express n'arrive pas à reconaitre l'import Microsoft.Office.Interop.Excel
    Si tu n'as pas Excel d'installé sur ton poste de développement tu ne pourras pas faire cet import, de même que ton utilisateur final ne pourra pas utiliser ta fonctionnalité si il n'a pas Excel d'installé.
    Du coup je vais te proposer d'aller voir du coté de EPPLUS qui te permettra de générer des fichier Open Office Xml utilisable par Open office, libre office, excel ...

    le tout en 4 lignes de code, je viens d'en parler ici.

    Bon code,
    J@ck.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par J@ckHerror Voir le message
    Bonjour,



    Si tu n'as pas Excel d'installé sur ton poste de développement tu ne pourras pas faire cet import, de même que ton utilisateur final ne pourra pas utiliser ta fonctionnalité si il n'a pas Excel d'installé.
    Du coup je vais te proposer d'aller voir du coté de EPPLUS qui te permettra de générer des fichier Open Office Xml utilisable par Open office, libre office, excel ...

    le tout en 4 lignes de code, je viens d'en parler ici.

    Bon code,
    J@ck.

    Je possaidait Office Starter 2010 dans mon ordinateur je pense que c'est surement du à ces fonctionnalités limités (notamment sans macro) que je n'arrivait pas à ajouter cette référence. J'ai installé du coup une version complète du pack office et en effet il prend bien en compte.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par gnain Voir le message
    Pour un DatagridView vers excel on peut faire un copier coller

    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
    sub Export_DatagridView_to_Excel
     
        Dim objXL As New Microsoft.Office.Interop.Excel.Application
        Dim wbXL As Excel.Workbook
        Dim wsXL As New Excel.Worksheet
     
         wbXL = objXL.Workbooks.Open("C:\chemin.xls", , True)
     
         objXL.Visible = True
         wsXL.Range("A1").Select()
     
         copy_ClipBord()
         wsXL.PasteSpecial(NoHTMLFormatting:=True)
     
     
         objXL = Nothing
         wsXL  = Nothing
     
    end sub
    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
    Sub copy_ClipBord()
            Form1.DataGridView1.SelectAll()
     
            Form1.DataGridView1.ClipboardCopyMode = _
            DataGridViewClipboardCopyMode.EnableWithoutHeaderText
     
     
            If Form1.DataGridView1.GetCellCount( _
           DataGridViewElementStates.Selected) > 0 Then
     
                Try
     
                    ' Add the selection to the clipboard.
                    Clipboard.SetDataObject( _
                        Form1.DataGridView1.GetClipboardContent())
     
                Catch ex As System.Runtime.InteropServices.ExternalException
     
                End Try
     
            End If
        End Sub
    Ton code je n'ai pas encore cherché à comprendre pour le moment, j'ai juste fais un copié collé et j'ai comme erreur "La référence d'objet n'est pas définie à une instance d'un objet"

    Il faut savoir aussi que j'ai plusieurs colonnes dans ma DataGridView mais je ne sais pas si ton code fonctionne si je sélectionne la ligne entière de ma DataGridView ou bien s'il sélectionne uniquement une cellule. J'ai testé les deux mais j'ai la même erreur

  7. #7
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Désolé de "contredire" tout le monde, mais, il me semble que n'importe quel générateur de rapport qui supporte moindrement le PDF (et il y en a des gratuits) peut très bien générer et "imprimer" directement à partir de la source de données sans niaiser avec un transfert dans Excel. Sinon, je n'ai rien compris...

    Sinon, tu peux aller fouiller par là:

    Exemple PDFReport avec lien de téléchargement.

    DGV vers Excel - Microsoft

    DGV vers Excel - CodeProject. Ne compte pas sur moi pour trier

    Ou, encore plus simple. Un publipostage dans Word. Il n'y aucune loi qui interdise d'utiliser le publipostage de Word pour autre chose que du courrier.

Discussions similaires

  1. Réponses: 7
    Dernier message: 05/05/2010, 19h48
  2. [AC-2007] Exporter des données d'une table vers une autre sous condition
    Par Imitator92 dans le forum IHM
    Réponses: 3
    Dernier message: 11/09/2009, 16h34
  3. [AC-2003] Exporter des données d'une requete vers une table
    Par FCL31 dans le forum Modélisation
    Réponses: 3
    Dernier message: 23/04/2009, 10h41
  4. export des données de plusieurs formulaires vers word
    Par adelsunwind dans le forum IHM
    Réponses: 2
    Dernier message: 11/02/2009, 20h44
  5. Réponses: 4
    Dernier message: 02/04/2007, 14h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo