Export Excel

Le
Alain
J'essaye l'exemple suivant, qui fonctionne, mais comment obtenir
la fenêtre demandant si l'on désire ouvrir ou enregistrer l'export excel de
manière systématique, j'ai décocher la case de la fenêtre de
dialogue donnant le choix, je ne sais pas comment l'afficher de façon
obligatoire,
même si on l'a décoché.

Je ne sais pas si je suis clair

Merci Alain

try
{
Response.Clear();
//On construit la reponse en spcifiant
//que le contenu est du type fichier excel
Response.ContentType = "application/vnd.ms-excel";
Response.ContentEncoding = System.Text.Encoding.Default;
Response.Charset="";

this.EnableViewStatelse;

DataGrid dg = new DataGrid();

//On definit le style du DataGrid
dg.CellPadding = 5;
dg.BorderColor = Color.FromArgb(173,198,231);

//Definit le style de l'entete du DataGrid
dg.HeaderStyle.Font.Bold = true;
dg.HeaderStyle.BackColor = Color.FromArgb(132,165,214);
dg.HeaderStyle.ForeColor = Color.White;
dg.HeaderStyle.VerticalAlign = VerticalAlign.Middle;
dg.HeaderStyle.HorizontalAlign = HorizontalAlign.Center;
dg.HeaderStyle.Wrap = true;

//Definit le style d'un item du DataGrid
dg.ItemStyle.HorizontalAlign = HorizontalAlign.Center;
dg.ItemStyle.VerticalAlign = VerticalAlign.Top;
dg.ItemStyle.BackColor = Color.FromArgb(247,255,255);

//On initialise unDataSet avec le contneu de mon document XML
DataSet ds = new DataSet();
ds.ReadXml(Server.MapPath("myData.xml"));

//On lie les donnes contenu dans le fichier XML avec le controle DataGrid
dg.DataSource=ds;
dg.DataBind();

//On inititalise n objet de type HtmlTextWriter avec le
//rendu du contrle serveur DataGrid
System.IO.StringWriter sw= new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter tw = new System.Web.UI.HtmlTextWriter(sw);
dg.RenderControl(tw);

//Et on ecrit la reponse avec le rendu du controle DataGrid
string str_tw = sw.ToString();
Response.Write(str_tw);
Response.Flush();
Response.Close();
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
  • Partager ce contenu :
Vos réponses
Trier par : date / pertinence
Zazar
Le #12079011
Bonjour,

J'essaye l'exemple suivant, qui fonctionne, mais comment obtenir
la fenêtre demandant si l'on désire ouvrir ou enregistrer l'export excel
de
manière systématique, j'ai décocher la case de la fenêtre de
dialogue donnant le choix, je ne sais pas comment l'afficher de façon
obligatoire,
même si on l'a décoché.

Je ne sais pas si je suis clair

Merci Alain

try
{
Response.Clear();
//On construit la reponse en spcifiant
//que le contenu est du type fichier excel
Response.ContentType = "application/vnd.ms-excel";
Response.ContentEncoding = System.Text.Encoding.Default;
Response.Charset="";



Response.AppendHeader("Content-Disposition", "attachment;
filename=nomdufichier.xls");


<snip>



--

Zazar
Alain
Le #12078941
Merci Zazar, cela fonctionne parfaitement. J'ai un autre petit problème, si
le flux est trop grand l'export échoue, je pense que l'on atteind les limites
de string.

Y a r'il un moyen de contourner

//Et on ecrit la reponse avec le rendu du controle DataGrid
string str_tw = sw.ToString();
Response.Write(str_tw);

Alain

"Zazar" a écrit :

Bonjour,

> J'essaye l'exemple suivant, qui fonctionne, mais comment obtenir
> la fenêtre demandant si l'on désire ouvrir ou enregistrer l'export excel
> de
> manière systématique, j'ai décocher la case de la fenêtre de
> dialogue donnant le choix, je ne sais pas comment l'afficher de façon
> obligatoire,
> même si on l'a décoché.
>
> Je ne sais pas si je suis clair
>
> Merci Alain
>
> try
> {
> Response.Clear();
> //On construit la reponse en spcifiant
> //que le contenu est du type fichier excel
> Response.ContentType = "application/vnd.ms-excel";
> Response.ContentEncoding = System.Text.Encoding.Default;
> Response.Charset="";

Response.AppendHeader("Content-Disposition", "attachment;
filename=nomdufichier.xls");


<snip>



--

Zazar





Zazar
Le #12078931
Bonjour,

Merci Zazar, cela fonctionne parfaitement. J'ai un autre petit problème,
si
le flux est trop grand l'export échoue, je pense que l'on atteind les
limites
de string.




A quelle taille environ, ça échoue ? Il n'y a a peu prés aucune chance que
la raison soit parce que vous atteignez les limites de String, à la rigueur
ça peut être la mémoire qui manque. Mais si c'est l'export qui échoue et pas
la génération de la string, ça ne vient pas de là. Quand vous dîtes échouer
: qu'est ce qui se passe ? Est-ce que vous avez un message d'erreur ? un
timeout ? une exception qui est levée ?

--

Zazar
Alain
Le #12078911
Bonjour,

J'exporte une liste de clients avec leur adresse, au dessus de 2.000 lignes,
je n'ai pas de message, pas d'exception mais l'export échoue. Le fichier
généré Excel est vide.

Alain

"Zazar" a écrit :

Bonjour,

> Merci Zazar, cela fonctionne parfaitement. J'ai un autre petit problème,
> si
> le flux est trop grand l'export échoue, je pense que l'on atteind les
> limites
> de string.


A quelle taille environ, ça échoue ? Il n'y a a peu prés aucune chance que
la raison soit parce que vous atteignez les limites de String, à la rigueur
ça peut être la mémoire qui manque. Mais si c'est l'export qui échoue et pas
la génération de la string, ça ne vient pas de là. Quand vous dîtes échouer
: qu'est ce qui se passe ? Est-ce que vous avez un message d'erreur ? un
timeout ? une exception qui est levée ?

--

Zazar





Zazar
Le #12078901
>
J'exporte une liste de clients avec leur adresse, au dessus de 2.000
lignes,
je n'ai pas de message, pas d'exception mais l'export échoue. Le fichier
généré Excel est vide.




Le fichier devrait donc faire quelques ko, ce qui ne pose pas de problème
point de vue mémoire.

Vérifiez à l'aide d'un débogueur, si le DataSet est bien rempli et si le
rendu du datagrid est bien correct.

--

Zazar
Poster une réponse
Anonyme