tournevice
Messages postés10Date d'inscriptionlundi 27 février 2006StatutMembreDernière intervention26 décembre 2006
-
4 juil. 2006 à 14:23
cs_lili86
Messages postés10Date d'inscriptionmercredi 16 avril 2008StatutMembreDernière intervention26 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()