Exporter un datagrid vers un fichier excel

tournevice Messages postés 10 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 26 décembre 2006 - 4 juil. 2006 à 14:23
cs_lili86 Messages postés 10 Date d'inscription mercredi 16 avril 2008 Statut Membre Dernière intervention 26 mai 2008 - 12 mai 2008 à 11:14
Salut à tous

Je suis confronté à un petit souci technique. En gros, je dispose d'un datagrid remplit et pour lequel je génère un fichier Excel. Jusque là, pas de soucis. Le problème, c'est qu'au niveau de la mise en page, je ne peux rien faire. La méthode que j'utilise, à priori, ne permet pas de rajouter du texte dans le document Excel généré, de mettre la page au format paysage, etc. Ce que je voudrais, c'est d'une part, construire mon tableau Excel avec mon datagrid, et d'autre part, mettre la page au format paysage et pouvoir y rajouter du texte (en dessus ou en dessous du tableau). J'essai avec interop, mais je suis obligé, à priori, de refaire un tableau à la main, ce que je veux éviter, vu que mon datagrid correspond à ce que je veux obtenir... Si jamais vous avez une idée, je suis preneur!

Voici la méthode que j'utilise actuellement :

        Response.Clear()

        ' On place tout ce qui est destiné au client dans la mémoire tampon
        'Response.Buffer = True
        ' On instancie deux objets qui vont nous permettre de récupérer les données du DataGrid :
        ' le StringWriter et l'HtmlTextWriter
        Dim monStringWriter As StringWriter = New StringWriter
        Dim monHtmlTextWriter As HtmlTextWriter = New HtmlTextWriter(monStringWriter)
        Dim frm As HtmlForm = New HtmlForm
        ' On définit le type d'informations renvoyée, ici des données au format Excel
        Response.ContentType = "application/vnd.ms-excel"
        Dim txtFile As String = "reporting-" + Now.ToShortDateString
        Response.AddHeader("content-disposition", "attachment;filename=" & txtFile & ".xls")
        ' On efface le jeu de caractères actuellement défini
        Response.Charset = ""
        Controls.Add(frm)
        frm.Controls.Add(dg)
        ' On extrait le contenu du DataGrid dans l'HtmlTextWriter
        'dg.RenderControl(monHtmlTextWriter)
        frm.RenderControl(monHtmlTextWriter)
        ' On copie le contenu extrait dans la mémoire tampon
        Response.Write(monStringWriter.ToString())

        ' On ferme "le flux" de données et envoie les données au client
        Response.End()

1 réponse

cs_lili86 Messages postés 10 Date d'inscription mercredi 16 avril 2008 Statut Membre Dernière intervention 26 mai 2008
12 mai 2008 à 11:14
Bonjour tous le monde

je veux un code ASP.net qui me permet  d'afficher les données d'un fichier excel dans un datagrid
et merci
0
Rejoignez-nous