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 :

Comment je peux exporter vers excel dans vb.net?


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 10
    Points : 10
    Points
    10
    Par défaut Comment je peux exporter vers excel dans vb.net?
    Salut,

    Je suis entrain de réaliser une application en vb.net 2008 et une base access, et j'ai une datagridview. Je veux exporter ses données vers une page Excel. Comment je peux faire ça?

    Pourriez vous me fournir une piste?

    Merci de votre aide.

  2. #2
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    Hello,
    une petite recherche sur le forum et dans les tuto t'aidera à trouver la réponse,
    si tu as des problèmes de compréhension de ces tuto / post n'hésite pas...
    Bien à toi.

  3. #3
    Membre habitué
    Inscrit en
    Octobre 2009
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 116
    Points : 147
    Points
    147
    Par défaut
    Bonjour chahinaz

    je crois que ce lien va t'aider


    http://faqvbnet.developpez.com/?page...dgrid_to_excel

  4. #4
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonsoir toutes et tous,

    Désolé, j'avais mis les variables en tête de module pour d'autres tests :o((. Donc, voici le code corrigé ci-dessous.
    Pour "DataGridView1", il te faut remplacer ce nom par le nom que tu as donné à ton DataGridView.
    Pour ce qui est des if then, end if, regarde comment et où tu copie le code que je t'ai donné.
    Pour tester, crée un bouton, double clique dessus et colle le code ci-dessous situé entre les tirets :
    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
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
     
        Private Sub BtnExcel_Click(ByVal sender As System.Object, _
                                   ByVal e As System.EventArgs) Handles BtnExcel.Click
     
    '--------
            Dim AppExcel As Object
            Dim Classeur As Object
            Dim Feuille As Object
            Dim Plage As Object
            Dim I As Integer, J As Integer
     
            Try
     
                If DataGridView1.SelectedRows.Count = 0 Then
     
                    MsgBox("Vous devez sélectionner au moins une ligne entière !")
                    Exit Sub
     
                End If
     
                'démarre l'application, la rend visible
                AppExcel = CreateObject("Excel.Application")
                AppExcel.Visible = True
     
                'si le classeur existe, l'ouvre sinon le crée
                If Dir("D:/Mon Classeur par VB.xls") <> "" Then
     
                    Classeur = AppExcel.Workbooks.Open("D:/Mon Classeur par VB.xls")
     
                Else
     
                    Classeur = AppExcel.Workbooks.Add()
     
                End If
     
                'défini la feuille "Feuil1" comme
                'la feuille devant recevoir les données
                Feuille = Classeur.Worksheets("Feuil1")
     
                'définie la plage de travail (commence à la cellule A1)
                'elle est fonction du nombre de lignes sélectionnées dans
                'le DataGridView ainsi que du nombre de colonnes de ce dernier
                With Feuille
     
                    Plage = .Range(.Cells(1, 1), _
                                   .Cells(DataGridView1.SelectedRows.Count + 1, _
                                          DataGridView1.Columns.Count))
                End With
     
                'empèche le rafraîchissement de l'écran afin d'éviter les scintillements
                AppExcel.ScreenUpdating = False
     
                'entêtes des colonnes
                For I = 0 To DataGridView1.Columns.Count - 1
     
                    Plage(1, I + 1) = DataGridView1.Columns(I).Name
     
                Next
     
                'données
                For I = 0 To DataGridView1.SelectedRows.Count - 1
     
                    For J = 0 To DataGridView1.Rows(I).Cells.Count - 1
     
                        Plage(I + 2, J + 1) = DataGridView1.Rows(I).Cells(J).Value
     
                    Next
     
                Next
     
                'formatage de la plage
                With Plage
     
                    'ligne des entêtes en gras, centrée verticalement et horizontalement
                    .Rows(1).Font.Bold = True
                    .Rows(1).HorizontalAlignment = -4108
                    .Rows(1).VerticalAlignment = -4108
     
                    'cadrillage fin dans la plage et bordure plus épaisse
                    For I = 7 To 12
     
                        .Borders(I).LineStyle = 1 'trait continu
     
                        Select Case I
     
                            Case 7 To 10 'cadre
     
                                .Borders(I).Weight = -4138
     
                            Case 11, 12 'cadrillage
     
                                .Borders(I).Weight = 2
     
                        End Select
     
                    Next
     
                    'ajuste les colonnes au contenu
                    .EntireColumn.AutoFit()
     
                End With
     
                'rafraîchi l'écran
                AppExcel.ScreenUpdating = True
     
            Catch ex As Exception
     
                MsgBox(ex)
                AppExcel.quit()
     
            End Try
    '-----
     
        End Sub
    Bon courrage.

    Hervé.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 25
    Points : 20
    Points
    20
    Par défaut
    bonjour à tous,

    voici la solution en 2 heures de discussion différée avec un intervenant du forum visual basic de Microsoft.

    Je crois que leur forum mérite bien d'etre cité sans vouloir faire de la pub.


    merci encore pour tous ceux qui ont essayé de m'apporter une solution.

    voici le lien de l'historique:
    http://social.msdn.microsoft.com/For...equired&ppud=4




    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
        '============================= code pour l'exportation ===================
     
         Private Sub Exporter_vers_excel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Exporter_vers_excel.Click
     
            Dim excel As Microsoft.Office.Interop.Excel.Application
     
            Try
                excel = New Microsoft.Office.Interop.Excel.Application
                excel.Workbooks.Open("C:\Users\compaq\Desktop\projet_inventaire1\bon_de_commande.xlsx")
                Dim i As Integer, j As Integer
                Dim diff As Integer = 1
                ' if you want column header from dgv elese omit the block  
                ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''  
                'For j = 0 To Table_inventairDataGridView.ColumnCount - 1  
                'excel.Worksheets(1).cells(1, j + 1) = Table_inventairDataGridView.Columns(j).Name  
                'Next  
                'diff += 1  
                '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''  
                For i = 1 To Table_inventairDataGridView.RowCount - 1
     
                    If Table_inventairDataGridView.Rows(i).IsNewRow = False Then
                        For j = 0 To Table_inventairDataGridView.ColumnCount - 2
     
                            excel.Worksheets(1).cells(i + 12, j + 4) = Table_inventairDataGridView.Item(j, i).Value  'i+22, starts from 22nd rows, and j+8, starts from 8th column
                        Next
                    End If
                Next
                excel.Worksheets(1).select()
                excel.ActiveWorkbook().Save()
                excel.Workbooks.Close()
                excel.Quit()
                excel = Nothing
            Catch ex As System.Runtime.InteropServices.COMException
                MessageBox.Show("Error accessing Excel: " + ex.ToString())
            Catch ex As Exception
                MessageBox.Show("Error: " + ex.ToString())
            End Try
     
     
     
        End Sub

Discussions similaires

  1. Exportation requête vers Excel dans un classeur ouvert
    Par sophiesallee dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 03/09/2007, 14h54
  2. [Automation]Exporter vers Excel dans differents onglets
    Par Didier71 dans le forum VBA Access
    Réponses: 2
    Dernier message: 18/04/2007, 07h24
  3. [DDE]Exporter vers Excel dans une feuille spécifique
    Par javelot69 dans le forum Access
    Réponses: 8
    Dernier message: 05/04/2007, 12h36
  4. Réponses: 1
    Dernier message: 22/09/2006, 11h19
  5. Export vers Excel et saut de ligne dans cellule
    Par sbeu dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 16/08/2004, 15h53

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