Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Export Excel

5 réponses
Avatar
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.EnableViewState=false;

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);
}

5 réponses

Avatar
Zazar
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
Avatar
Alain
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





Avatar
Zazar
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
Avatar
Alain
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





Avatar
Zazar
>
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