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 :

Exportation Datagrid Excel


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Chef de Projet
    Inscrit en
    Décembre 2004
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Chef de Projet

    Informations forums :
    Inscription : Décembre 2004
    Messages : 166
    Par défaut Exportation Datagrid Excel
    Bonjour,

    J'essaie d'exporter les données d'un dataGrid via un fichier Excel en m'inspirant d'un post se trouvant dans la FAQ.

    J'ai l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Les données ne peuvent être lues à partir d'un DataGrid qui n'es pas lié à un DataTable
    Pourtant, je lie bien mon DataGrid à une DataTable.

    Voici mon code :
    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
     
         Dim xlApp As Excel.Application
            Dim xlBook As Excel.Workbook
            Dim xlSheet As Excel.Worksheet
     
            Dim i As Integer
            Dim nbRow As Integer = 0
     
            Dim dgDemAtten As New DataGrid
            Dim dsDemAtten As New DataSet
            Dim dtDemAtten As New DataTable
            Dim oAdapterDemAtten As New System.data.oledb.OleDbDataAdapter
            Dim oConDemAtten As New System.data.oledb.OleDbConnection
            Dim oBuildDemAtten As New System.data.oledb.OleDbCommandBuilder
     
            ' Réinitialiser la liste des prestations en litige
            Dim FIni As New FichierIni
            Dim cRubrique As String = "BDD" 'Nom de la rubrique
            Dim cKey As String = "Prestations" 'Nom de la clé
            Dim cRepertoire As String 'Variable récupérant la string 
            Dim istat As Integer
     
            Dim cIniFile
            cIniFile = FIni.AppPath(True) & "Fichier.INI"
     
            'Appel de la fonction
            istat = FIni.Get_Private_Profile_String(cRubrique, cKey, "", cRepertoire, cIniFile)
            Dim strConn As String = "Provider=SQLOLEDB;" & cRepertoire
     
            xlApp = CType(CreateObject("Excel.Application"), Excel.Application)
            xlBook = CType(xlApp.Workbooks.Add, Excel.Workbook)
            xlSheet = CType(xlBook.Worksheets(1), Excel.Worksheet)
     
            ' ici on compte le nombre de lignes et de colonnes du datatable
            Dim nbrLigne As Integer = DS_DDF1.Tables("Table").Rows.Count - 1
            Dim nbrColon As Integer = DS_DDF1.Tables("Table").Columns.Count - 1
            Dim x, y As Integer
     
            'Création requête SQL
    strSlctDemFondAss = SELECT ...................
     
            If nbRow < 1 Then
                'Si pas de saisi, on annule l'opération
                MsgBox("Aucune demande n'a été sélectionné", MsgBoxStyle.Information, "Information")
                MsgBox("Opération annulée", MsgBoxStyle.Information, "Information")
                Exit Sub
            End If
     
            Try
                'Donner à la propriété ConnectionString les paramètres de connexion
                oConDemAtten.ConnectionString = strConn
                'Ouverture de la connexion
                oConDemAtten.Open()
     
                'Instancier un objet Adapter
                oAdapterDemAtten = New System.data.oledb.OleDbDataAdapter(strSlctDemFondAss, strConn)
     
                'initialiser l'objet OleCBComandBuilder (sinon pas d'update)
                oBuildDemAtten = New System.data.oledb.OleDbCommandBuilder(oAdapterDemAtten)
     
                'Avec l'aide de la propriété Fill du DataAdapter charger le DataSet
                oAdapterDemAtten.Fill(dsDemAtten, "Table")
     
                dtDemAtten = dsDemAtten.Tables("Table")
     
                'Mettre dans le DataGrid une table DataTable
                dgDemAtten.DataSource = dtDemAtten
     
                For x = 0 To nbrColon
                    ' ici on prends le titre des colonnes du datatable
                    xlSheet.Cells(1, x + 1) = dsDemAtten.Tables("Table").Columns(x).ColumnName
                    ' on mets la première ligne en gras
                    xlSheet.Rows(1).Font.Bold = True
     
                    ' pour chaque colonne et chaque ligne on transfert les données      
                    For y = 0 To nbrLigne
                        xlSheet.Cells(y + 2, x + 1) = dgDemAtten.Item(y, x)
                    Next
                Next
     
                ' ici on affiche les résultat dans excel
                xlSheet.Application.Visible = True
                ' on peut sauvegarder notre document sur le disque
                xlSheet.SaveAs("C:\fichier.xls")
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
     
            ' on quitte l'application et on détruit les objets
            xlApp.Quit()
            xlSheet = Nothing
            xlBook = Nothing
            xlApp = Nothing
    Pouvez-vous m'aider svp?

  2. #2
    Membre chevronné
    Avatar de Ogotcha
    Inscrit en
    Juillet 2008
    Messages
    232
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Juillet 2008
    Messages : 232
    Par défaut
    Je pense qu'il te faut juste remplacer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     dgDemAtten.DataSource = dtDemAtten
    Par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    dgDemAtten.DataSource = dtDemAtten.datasource
    Mon Blog
    FAQs DotNet
    Fonction utile : Recherche

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par Ogotcha Voir le message
    Je pense qu'il te faut juste remplacer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     dgDemAtten.DataSource = dtDemAtten
    Par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    dgDemAtten.DataSource = dtDemAtten.datasource
    La classe DataTable n'a pas de propriété DataSource...

  4. #4
    Membre chevronné
    Avatar de Ogotcha
    Inscrit en
    Juillet 2008
    Messages
    232
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Juillet 2008
    Messages : 232
    Par défaut
    Citation Envoyé par tomlev Voir le message
    La classe DataTable n'a pas de propriété DataSource...
    oupps désolé j'ai répondu trop vite
    Mon Blog
    FAQs DotNet
    Fonction utile : Recherche

  5. #5
    Membre confirmé
    Profil pro
    Chef de Projet
    Inscrit en
    Décembre 2004
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Chef de Projet

    Informations forums :
    Inscription : Décembre 2004
    Messages : 166
    Par défaut
    Les dataTables n'ont pas de propriété dataSource

Discussions similaires

  1. Export Datagrid à Excel
    Par adilou1981 dans le forum Flex
    Réponses: 3
    Dernier message: 14/09/2009, 11h23
  2. Datagrid paginé et export vers excel
    Par der dans le forum ASP.NET
    Réponses: 3
    Dernier message: 17/04/2008, 00h55
  3. exporter datagrid dans excel
    Par joe12260 dans le forum ASP.NET
    Réponses: 3
    Dernier message: 15/04/2008, 09h57
  4. exportation datagrid vers excel
    Par solid_sneak06 dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 10/10/2007, 17h06
  5. Export Datagrid vers Excel
    Par DocCoinCoin dans le forum ASP.NET
    Réponses: 2
    Dernier message: 25/04/2007, 00h06

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