Eport Excel 15.000 record

mercoledì 21 febbraio 2007 - 09.14

erik77 Profilo | Senior Member

Ciao ragazzi,
dovrei realizzare un metodo su un WebService che mi ritorni i dati di una tabella del DB SqlServer 2000 (circa 15.000 record ) . La Web Application che richiama il metodo dovrà poi salvare i dati in un foglio Excel per permettere il download.
Vorrei chiedervi la strada migliore per sviluppare la richiesta e se l'uso del Web Service è consigliato per una mole di dati così importante.

Per la creazione del file Excel ho provato a trasferire i dati della Query SQL in una struttura HTML con la TABLE.... ma ho visto che il file generato è troppo grande (20 Mb circa...) ... quindi penso che dovrò utilizzare qualche oggetto che mi faccia lavorare nel formato proprietario di Excel..

rimango in attesa di un vostro aiuto.... e vi ringrazioo in anticipo....

Ciaoooo :-)

xiongh Profilo | Newbie

DataGrid grid = new DataGrid();
DataTable dt= funzione(oggetto che contiene i tuo datii);

grid.DataSource = dt;
grid.DataBind();


Response.ContentType = "application/vnd.ms-excel";
Response.ContentEncoding = System.Text.Encoding.UTF8;
this.EnableViewState=false;

System.IO.StringWriter tw = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter hw = new
System.Web.UI.HtmlTextWriter(tw);
gridTestata.RenderControl(hw);

string str_tw_ = tw.ToString();
Response.Write(str_tw);
Response.Flush();
Response.Close();




private DataTable funzione(oggetto che contiene i tuo datii);
{

DataTable dt = new DataTable("Flussi");

dt.Columns.Add(new DataColumn("Colonna A", typeof(String)));
dt.Columns.Add(new DataColumn("Colonna B", typeof(String)));
....
....

object[] values = new object[numero delle colonne];
values[0] = ...;
values[1] = ....;
values[2] = ...;

dt.Rows.Add(values);

return dt
}


erik77 Profilo | Senior Member

grazie della risposta....
quello che però dovrei fare io è passare i dati del DataSet nel foglio Excel e non quelli del DataGrid (questo perchè nel DataGrid "bindo" molti meno dati)
ed inoltre poter decidere quali campi del DataSet passare nel foglio Excel.

Adesso l'applicazione cicla sul DataSet per scegliere quali CAMPI scrivere nel foglio Excel... ma l'operazione è molto lenta a fronte di molti record....

sto cercando anche io la soluzione migliore per compiere questa operazione da DataSet ad Excel ... se riuscite a darmi qualche suggerimento... ve ne sarei grato

Visto che devo esportare una grande mole di dati mi servirebbe il metodo più veloce e quello che crei il file di una dimensione ridotta...


Ciaoooooo
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5