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

Windows Forms Discussion :

PB DataGridView -> Excel


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 163
    Par défaut PB DataGridView -> Excel
    Bonjour le Forum,

    Tout d'abord je ne sais pas trop si c'est sur le bon sous-forum qu'il faut que je poste ma question donc si c'est le cas dites moi ou la poster Merci.

    Bon alors j'ai un petit soucis lors du remplissage d'une Feuille Excel a partir d'un DatagridView.

    Voici le code (que j'ai trouvé sur Internet) :

    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
     
            Dim AppExcel As Microsoft.Office.Interop.Excel.Application
            Dim wsheet As Microsoft.Office.Interop.Excel.Worksheet
            Dim wbook As Microsoft.Office.Interop.Excel.Workbook
            Dim Row As Integer
            Dim Col As Integer
            Dim Head As Integer
     
            AppExcel = New Microsoft.Office.Interop.Excel.Application
            AppExcel.Visible = True
            wbook = AppExcel.Workbooks.Add()
            wsheet = wbook.ActiveSheet
     
            For Head = 0 To DataGridView1.Columns.Count - 1
                wsheet.Cells(1, Head + 1).Value = DataGridView1.Columns(Head).HeaderText
            Next
     
            wsheet.Rows(2).select()
     
            For Row = 0 To DataGridView1.Rows.Count - 1
                For Col = 0 To DataGridView1.Columns.Count - 1
                    wsheet.Cells(Row + 2, Col + 1).value = DataGridView1(Col, Row).Value.ToString
                Next
            Next
     
            AppExcel.Visible = True
            AppExcel.UserControl = True
    Ca me remplie toutes mes données dans Excel mais a la dernière itération, j'ai le message d'erreur suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Object reference not set to an instance of an object.
    C'est le seul code potable que j'ai trouvé sur Internet et qui me remplie mes données comme il faut, mais persiste cette erreur...

    Si quelqu'un a déjà utilisé ce code et la modifié afin qu'il marche ou qui sait comment résoudre ce pb faite moi signe....

    Merci d'avance et bonne journée

    Cordialement,
    Vincent

  2. #2
    Rédacteur/Modérateur
    Avatar de Skalp
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Par défaut
    Cette erreur signifie que tu fais appel à une variable définie à "Nothing".
    Il te faut simplement trouver laquelle en utilisant le mode pas à pas, par exemple, pour voir à quelle ligne exactement ton code plante.
    Déjà, ça m'étonne que ton code compile, car Workbooks.Add() prend un paramètre, normalement.

    Pourquoi aller se perdre sur Internet alors qu'il y a tout ce qu'il faut sur dvpz.com : Comment transférer un DataGrid dans Excel ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 163
    Par défaut
    Salut Skalp,

    Merci pour ton lien... ça m'a aidé a trouver ce qu'il n'allait pas...

    Alors en fait j'ai trouvé pourquoi j'avais ce message d'erreur enfin le pourquoi du comment non mais j'ai tout simplement enlevé le .ToString dans la ligne suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wsheet.Cells(Row + 2, Col + 1).value = DataGridView1(Col, Row).Value.ToString
    Et ça marche très bien....

    Sinon j'ai regardé le code du lien que tu m'as donné et il y a deux petites erreurs car il ne compile pas:

    Les voici:
    Première erreur: Out of Range

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xlSheet.Cells(y + 2, x + 1) = DataGrid1.Item(y, x)
    ça ne peut pas marcher car un Datagrid est construit différemment qu'une feuille Excel ie il faut inverser les lignes avec les colonnes. Ici x représente les colonnes et y les lignes. Donc cette ligne il faut l'écrire de cette façon:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xlSheet.Cells(y + 2, x + 1) = DataGrid1.Item(x, y)
    Deuxième erreur: Exception from HRESULT: 0x800A03EC

    Toujours dans la même ligne, il faut préciser ce que l'on veut dans le DataGrid ie les Valeurs Donc il faut lui ajouter la propriété .Value:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xlSheet.Cells(y + 2, x + 1) = DataGrid1.Item(y, x).Value
    Et en rajoutant ces petites modifications le code marche très bien.

    En tout cas merci pour ton aide

    Cordialement,
    Vincent.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Datagridview vers excel
    Par urbanspike dans le forum VB.NET
    Réponses: 2
    Dernier message: 24/06/2009, 10h03
  2. Problème d'export de datagridview vers excel
    Par holdboy dans le forum C#
    Réponses: 2
    Dernier message: 15/06/2009, 21h54
  3. Réorganisation colonnes datagridview et excel
    Par salokin dans le forum C#
    Réponses: 1
    Dernier message: 10/06/2009, 14h30
  4. datagridview=>fichier excel
    Par felin86 dans le forum Windows Forms
    Réponses: 8
    Dernier message: 01/04/2008, 14h17
  5. Exporter une dataGridView vers Excel
    Par drayif dans le forum Windows Forms
    Réponses: 2
    Dernier message: 02/08/2007, 17h45

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