Exporter des donnees d'un datagridview vb.net vers excel

Signaler
Messages postés
3
Date d'inscription
lundi 6 décembre 2010
Statut
Membre
Dernière intervention
11 avril 2012
-
 archippe mayele -
voila le code que je regler pour exporter les donnes d'un datagrid vers un fichier excel qui se trouve dans le bin de mon application mais le probleme c'est que se code affiche seulement le dernier enregistrement pouver vous maider a devlopper ce code pour afficher les donnees dans les celles precése
et merci d'avence
voila le code: v1 et un view
Dim app As New Microsoft.Office.Interop.Excel.Application
app.Workbooks.Open(System.Environment.CurrentDirectory & "\etat2.xls")
app.Visible = True
'dss.Clear()
Call connect()
Cmd.CommandText = "select N_ARRIVE,NOM_EXPD,DATE_ARRIVE,LIBELLE_DEPART from v1 where (DATE_ARRIVE between '" & Me.DateTimePicker1.Value & "' and '" & Me.DateTimePicker2.Value & "') and LIBELLE_DEPART like '" & Me.ComboBox1.Text & "'"
'Cmd.CommandText = "select N_ARRIVE,NOM_EXPD,DATE_ARRIVE,LIBELLE_DEPART from v1 "
Cmd.Connection = Cnx
Cmd.CommandType = CommandType.Text
dr = Cmd.ExecuteReader
Dim i As Integer = 0

dr.Read()
app.Cells(2, 3) = dr(3)

While dr.Read

app.Cells(6 + i, 1) = dr(0)
app.Cells(6 + i, 2) = dr(1)
app.Cells(6 + i, 3) = dr(2)
i = +1

End While

'app.Visible = True
'app.Workbooks.Add()
dr.Close()
Cnx.Close()


app.Worksheets.PrintPreview()
A voir également:

6 réponses

Messages postés
3
Date d'inscription
lundi 6 décembre 2010
Statut
Membre
Dernière intervention
11 avril 2012
1
merci NHenry de me reponder
je change i=+1 par i += 1 mais c'est la meme resultat toujours il affiche le dernier enregistrement vous n'aver pas d'autre idee??
Messages postés
14733
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
12 octobre 2020
145
Bonjour,

i = +1
C'est juste ?
i += 1
Mieux non ?

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualVasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
49
Salut

ta boucle
While dr.Read
est executé ?
Messages postés
6960
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
13 octobre 2020
113
Bonjour,
Voici le code que j'utilise pour exporter des données d'une datagridview vers Excel. Essaie le:


  'Ajouter la réference Microsoft Excel 11.0 Object Library 
    Private Sub cmdexport_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdexport.Click
        Dim xlApp As Excel.Application
        Dim xlWorkBook As Excel.Workbook
        Dim xlWorkSheet As Excel.Worksheet
        Dim misValue As Object = System.Reflection.Missing.Value
        Dim i As Integer
        Dim j As Integer

        xlApp = New Excel.ApplicationClass
        xlWorkBook = xlApp.Workbooks.Add(misValue)
        xlWorkSheet = xlWorkBook.Sheets("Feuil1")


        For i = 0 To DataGridView1.RowCount - 2
            For j = 0 To DataGridView1.ColumnCount - 1
                xlWorkSheet.Cells(i + 1, j + 1) = _
                    DataGridView1(j, i).Value.ToString()
            Next
        Next

        xlWorkSheet.SaveAs(Application.StartupPath & "\monclasseur.xls") 'enregistre dans le dossier Debug de l'application
        xlWorkBook.Close()
        xlApp.Quit()

        releaseObject(xlApp)
        releaseObject(xlWorkBook)
        releaseObject(xlWorkSheet)

        MessageBox.Show("Opération réussie," & vbNewLine & "vous trouverez votre classeur dans le dossier Debug de l'application", "Exportez vers Excel", MessageBoxButtons.OK, MessageBoxIcon.Information)

    End Sub
    Private Sub releaseObject(ByVal obj As Object)
        Try
            System.Runtime.InteropServices.Marshal.ReleaseComObject(obj)
            obj = Nothing
        Catch ex As Exception
            obj = Nothing
        Finally
            GC.Collect()
        End Try
    End Sub


@+ Le Pivert

le type Excel.Application
Messages postés
3
Date d'inscription
lundi 6 décembre 2010
Statut
Membre
Dernière intervention
11 avril 2012
1
merci le pivert je devloppe mon code avec les donnees de vote reponce et enfin j'arrive a resoudre mon probleme
merci a tous ce qu'on mon reponder voila le nouveau code :
Dim app As New Microsoft.Office.Interop.Excel.Application
app.Workbooks.Open(System.Environment.CurrentDirectory & "\etat2.xls")
app.Visible = True
'dss.Clear()
Call connect()
Cmd.CommandText = "select LIBELLE_DEPART from v1 where (DATE_ARRIVE between '" & Me.DateTimePicker1.Value & "' and '" & Me.DateTimePicker2.Value & "') and LIBELLE_DEPART like '" & Me.ComboBox1.Text & "'"
'Cmd.CommandText = "select N_ARRIVE,NOM_EXPD,DATE_ARRIVE,LIBELLE_DEPART from v1 "
Cmd.Connection = Cnx
Cmd.CommandType = CommandType.Text
dr = Cmd.ExecuteReader
dr.Read()
app.Cells(2, 3) = dr(0)

Dim i As Integer

Dim j As Integer
'For i = 0 To DataGridView1.RowCount - 2
' For j = 0 To DataGridView1.ColumnCount - 1
' app.Cells(6 + i, j + 1) = dr(0)
' app.Cells(6 + i, j + 2) = dr(1)
' app.Cells(6 + i, j + 3) = dr(2)
' j = j + 1
' Next
'Next
For i = 0 To DataGridView1.RowCount - 2
For j = 0 To DataGridView1.ColumnCount - 1
app.Cells(i + 6, j + 1) = _
DataGridView1(j, i).Value.ToString()
Next
Next

'app.Visible = True
'app.Workbooks.Add()
dr.Close()
Cnx.Close()