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

ASP.NET Discussion :

exporter datagrid dans excel


Sujet :

ASP.NET

  1. #1
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 53

    Informations forums :
    Inscription : Avril 2008
    Messages : 23
    Par défaut exporter datagrid dans excel
    bonjour,

    j'ai un problème pour exporter un datagrid. en effet rien ne s'exporte dans excel.
    voici le code pour le datagrid


    <aspataGrid ID="magrille" runat="server" CellPadding="4" ForeColor="#333333" GridLines="None" AutoGenerateColumns=false>
    <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
    <EditItemStyle BackColor="#999999" />
    <SelectedItemStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
    <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
    <AlternatingItemStyle BackColor="White" ForeColor="#284775" />
    <ItemStyle BackColor="#F7F6F3" ForeColor="#333333" />
    <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
    <Columns>
    <asp:ButtonColumn CommandName="Select" Text="Sélectionner"></asp:ButtonColumn>
    </Columns>
    </aspataGrid>

    ainsi que celui qui devrez me permettre de l'exporter.

    Protected Sub BtImprimer_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BtImprimer.Click
    Dim r As Integer
    Dim c As Integer
    Dim sLine As String

    Response.Clear()
    Response.AddHeader("content-disposition", "attachment; filename=Mod_Tools_Downloads.xls")
    Response.Charset = ""

    Response.Cache.SetCacheability(HttpCacheability.NoCache)
    Response.ContentType = "application/vnd.ms-excel"
    Response.ContentEncoding = System.Text.Encoding.Default
    TextBox2.Text = magrille.Columns.Count
    TextBox3.Text = magrille.Items.Count
    sLine = ""
    For c = 0 To magrille.Columns.Count - 1
    sLine += magrille.Columns(c).HeaderText & Chr(9)
    Next
    Response.Write(sLine)
    Response.Write(vbCrLf)
    For r = 0 To magrille.Items.Count - 1
    sLine = ""
    For c = 0 To magrille.Columns.Count - 1
    sLine += magrille.Items(r).Cells(c).Text & Chr(9)
    Next
    TextBox1.Text = sLine
    Response.Write(sLine)
    Response.Write(vbCrLf)
    Next
    Response.End()
    End Sub

    ce datagrid est alimenter par une base de données access. Voici le code qui alimente mon datagrid.

    Sub alim()
    Dim connectionAccess As System.Data.OleDb.OleDbConnection
    connectionAccess = New System.Data.OleDb.OleDbConnection

    'connectionAccess.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = C:\Documents and Settings\administrateur.GFI-AEROSPACE\Mes documents\Visual Studio 2005\WebSites\polyvalence1\polyvalence.mdb"
    connectionAccess.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = G:\Intranet_BAI\polyvalence1\polyvalence.mdb"
    connectionAccess.Open()

    Dim DataRead As System.Data.OleDb.OleDbDataReader
    Dim commandeAccess As System.Data.OleDb.OleDbCommand
    Dim requeteAccess As String

    requeteAccess = "SELECT * FROM PERSONNELS ORDER BY MATRICULE"
    commandeAccess = New System.Data.OleDb.OleDbCommand(requeteAccess, connectionAccess)
    DataRead = commandeAccess.ExecuteReader()

    magrille.DataSource = DataRead
    magrille.DataBind()

    DataRead.Close()
    connectionAccess.Close()
    End Sub

    merci de votre aide.

  2. #2
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 53

    Informations forums :
    Inscription : Avril 2008
    Messages : 23
    Par défaut
    bonjour,

    j'ai trouver la réponse tout seul merci.

  3. #3
    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
    Laquelle est-elle ? Fais-en profiter tout le monde

  4. #4
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 53

    Informations forums :
    Inscription : Avril 2008
    Messages : 23
    Par défaut
    en fait, mon problème était qu'il ne reconnaissait pas mes colonnes. donc je les créer lors de l'extraction. et voila

    Sub alim()
    Dim connectionAccess As System.Data.OleDb.OleDbConnection
    connectionAccess = New System.Data.OleDb.OleDbConnection

    'connectionAccess.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = C:\Documents and Settings\administrateur.GFI-AEROSPACE\Mes documents\Visual Studio 2005\WebSites\polyvalence1\polyvalence.mdb"
    connectionAccess.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = G:\Intranet_BAI\polyvalence1\polyvalence.mdb"
    connectionAccess.Open()

    Dim DataRead As System.Data.OleDb.OleDbDataReader
    Dim commandeAccess As System.Data.OleDb.OleDbCommand
    Dim requeteAccess As String

    requeteAccess = "SELECT * FROM PERSONNELS ORDER BY MATRICULE"
    commandeAccess = New System.Data.OleDb.OleDbCommand(requeteAccess, connectionAccess)
    DataRead = commandeAccess.ExecuteReader()

    magrille.DataSource = DataRead

    ' Définition des caractéristiques graphiques générales du DataGrid
    magrille.BorderColor = Drawing.Color.Black
    magrille.CellPadding = 3
    magrille.CellSpacing = 0
    magrille.HeaderStyle.ForeColor = Drawing.Color.Black
    magrille.HeaderStyle.HorizontalAlign = HorizontalAlign.Center
    magrille.HeaderStyle.BackColor = Drawing.Color.Beige
    magrille.AutoGenerateColumns = False
    magrille.AlternatingItemStyle.BackColor = Drawing.Color.AliceBlue


    ' Instanciation des colonnes du DataGrid
    ' (on voit qu'elles sont de types différents)
    Dim colMatricule As New BoundColumn
    Dim colNom As New BoundColumn
    Dim colCariste As New BoundColumn
    Dim colSst As New BoundColumn
    Dim colTuteur As New BoundColumn
    Dim colFile As New BoundColumn
    Dim pdf As New ButtonColumn
    'Ce DataGrid comportera donc 5 colonnes

    colMatricule.DataField = "MATRICULE"
    colMatricule.HeaderText = "Matricule"
    colMatricule.HeaderStyle.Width = Unit.Pixel(50)
    colMatricule.HeaderStyle.Font.Bold = True
    colMatricule.HeaderStyle.HorizontalAlign = HorizontalAlign.Center
    colMatricule.ItemStyle.HorizontalAlign = HorizontalAlign.Left
    magrille.Columns.Add(colMatricule)

    ' Les données affichées dans cette colone sont récupérées dans
    ' le DataReader dans le champ MATRICULE
    colNom.DataField = "NOM"
    ' On définit le texte d'en-tête de la colonne
    colNom.HeaderText = "Nom"
    ' On définit la largeur de la colonne
    colNom.HeaderStyle.Width = Unit.Pixel(250)
    ' On mets en gras le corps du texte de l'en-tête
    colNom.HeaderStyle.Font.Bold = True
    ' On aligne le texte de l'en-tête au milieu
    colNom.HeaderStyle.HorizontalAlign = HorizontalAlign.Center
    ' On aligne les données dans la colonne à gauche
    colNom.ItemStyle.HorizontalAlign = HorizontalAlign.Left
    ' On "rattache" la colonne au DataGrid
    magrille.Columns.Add(colNom)



    colCariste.DataField = "CARISTE"
    colCariste.HeaderText = "En stock"
    colCariste.HeaderStyle.Width = Unit.Pixel(50)
    colCariste.HeaderStyle.Font.Bold = True
    colCariste.HeaderStyle.HorizontalAlign = HorizontalAlign.Center
    colCariste.ItemStyle.HorizontalAlign = HorizontalAlign.Center
    magrille.Columns.Add(colCariste)

    colSst.DataField = "SST"
    colSst.HeaderText = "SST"
    colSst.HeaderStyle.Width = Unit.Pixel(50)
    colSst.HeaderStyle.Font.Bold = True
    colSst.HeaderStyle.HorizontalAlign = HorizontalAlign.Center
    colSst.ItemStyle.HorizontalAlign = HorizontalAlign.Center
    magrille.Columns.Add(colSst)

    colTuteur.DataField = "TUTEUR"
    colTuteur.HeaderText = "Tuteur"
    colTuteur.HeaderStyle.Width = Unit.Pixel(50)
    colTuteur.HeaderStyle.Font.Bold = True
    colTuteur.HeaderStyle.HorizontalAlign = HorizontalAlign.Center
    colTuteur.ItemStyle.HorizontalAlign = HorizontalAlign.Center
    magrille.Columns.Add(colTuteur)

    colFile.DataField = "FILE"
    colFile.HeaderText = "GUIDE"
    colFile.HeaderStyle.Width = Unit.Pixel(50)
    colFile.HeaderStyle.Font.Bold = True
    colFile.HeaderStyle.HorizontalAlign = HorizontalAlign.Center
    colFile.ItemStyle.HorizontalAlign = HorizontalAlign.Center
    magrille.Columns.Add(colFile)

    'pdf.ButtonType = ButtonColumnType.PushButton
    'pdf.Text = "pdf"
    'magrille.Columns.Add(pdf)

    ' Les données contenues dans le OracleDataReader sont liées au DataGrid

    magrille.DataBind()

    DataRead.Close()
    connectionAccess.Close()
    End Sub

    ensuite je fait l'extraction.

    Protected Sub BtImprimer_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BtImprimer.Click
    Dim r As Integer
    Dim c As Integer
    Dim sLine As String

    Response.Clear()
    Response.AddHeader("content-disposition", "attachment; filename=Mod_Tools_Downloads.xls")
    Response.Charset = ""

    Response.Cache.SetCacheability(HttpCacheability.NoCache)
    Response.ContentType = "application/vnd.ms-excel"
    Response.ContentEncoding = System.Text.Encoding.Default
    sLine = ""
    For c = 0 To magrille.Columns.Count - 1
    sLine += magrille.Columns(c).HeaderText & Chr(9)
    Next
    Response.Write(sLine)
    Response.Write(vbCrLf)
    For r = 0 To magrille.Items.Count - 1
    sLine = ""
    For c = 0 To magrille.Columns.Count - 1
    sLine += magrille.Items(r).Cells(c).Text & Chr(9)
    Next
    Response.Write(sLine)
    Response.Write(vbCrLf)
    Next
    Response.End()
    End Sub

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

Discussions similaires

  1. [AIX] Exporter résultats dans excel
    Par Crevette130983 dans le forum AIX
    Réponses: 4
    Dernier message: 10/04/2009, 16h50
  2. exportation datagrid vers excel
    Par solid_sneak06 dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 10/10/2007, 17h06
  3. Export Datagrid vers Excel
    Par DocCoinCoin dans le forum ASP.NET
    Réponses: 2
    Dernier message: 25/04/2007, 00h06
  4. Réponses: 7
    Dernier message: 20/09/2006, 11h04

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