si, in pratica per forzare il download devi modificare gli header della richiesta e far credere al browser che è stato richiesto un file Excel.
Queste sono le righe di codice che uso io:
Response.Clear();
Response.ContentType = "application/vnd.ms-excel";
Response.AppendHeader("Content-Disposition",
string.Format("attachment; filename={0}_{1}.xls; creation-date='{2}'",
strNomeFile,
DateTime.Now.ToShortDateString().Replace("/", "-"),
DateTime.Now.ToString()));
Response.Charset = "utf-8";
Response.AppendHeader("pragma", "no-cache");
Response.Buffer = true;
Response.Expires = -1;
Response.Write(tw.ToString());
Response.Flush();
Response.End();
Un altro modo è quello di creare il file excel sul server, e creare un link da visualizzare sulla pagina.
Un esempio è questo:
strDownloadFileName = "~/DownloadFiles/" + strNomeFile + ".xls";
hlDownload.Visible = true;
hlDownload.Text = "Click here to download file.";
hlDownload.NavigateUrl = strDownloadFileName;
dove hlDownload è un link nella pagina:
<asp:HyperLink ID="hlDownload" runat="server" Visible="false"></asp:HyperLink>
Mi raccomando, in questo caso gestisci bene la generazione dei file e soprattutto la cancellazione dopo il download o dopo un certo tempo.
Ciao
____________
Ricordati di utilizzare il tasto "Accetta" se i nostri consigli ti sono serviti a risolvere il problema.
È il modo per ringraziare chi ti ha aiutato.