my.ASPItalia.com
ASP.NET
|
HTML5
|
LINQ e Entity Framework
|
Silverlight
|
Windows Phone
|
.NET Framework
|
Windows 8
|
Libro WP7
|
Libro HTML5
|
Corso HTML5
Iscriviti
Login
Newsletter
Home
Articoli
Script
Notizie
FORUM
Blogs
Media
Tutorials
Corsi
Libri
Eventi
Tags
Tutti i forum
Ricerca
FAQ
Fai una domanda
Export gridview to excel
in
.NET Framework
>
ASP.NET 3.5
Ultimo messaggio
mauro.piccioli
il 21 ottobre 2009 alle 10:21
312 messaggi
dal 13 gennaio 2004
Per esportare dati da una gridview ad un file excel utilizzo il seguente codice che ho trovato in rete:
public class GridViewExportUtil
{
public static void Export(string fileName, GridView gv)
{
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.AddHeader(
"content-disposition", string.Format("attachment; filename={0}", fileName));
HttpContext.Current.Response.ContentType = "application/ms-excel";
using (StringWriter sw = new StringWriter())
{
using (HtmlTextWriter htw = new HtmlTextWriter(sw))
{
// Create a form to contain the grid
Table table = new Table();
//table.Style.Add("border-style", "solid");
// add the header row to the table
if (gv.HeaderRow != null)
{
GridViewExportUtil.PrepareControlForExport(gv.HeaderRow);
table.Rows.Add(gv.HeaderRow);
}
// add each of the data rows to the table
foreach (GridViewRow row in gv.Rows)
{
GridViewExportUtil.PrepareControlForExport(row);
table.Rows.Add(row);
}
// add the footer row to the table
if (gv.FooterRow != null)
{
GridViewExportUtil.PrepareControlForExport(gv.FooterRow);
table.Rows.Add(gv.FooterRow);
}
// render the table into the htmlwriter
table.RenderControl(htw);
// render the htmlwriter into the response
HttpContext.Current.Response.Write(sw.ToString());
HttpContext.Current.Response.End();
}
}
}
/// Replace any of the contained controls with literals
private static void PrepareControlForExport(Control control)
{
for (int i = 0; i < control.Controls.Count; i++)
{
Control current = control.Controls[i];
if (current is LinkButton)
{
control.Controls.Remove(current);
control.Controls.AddAt(i, new LiteralControl((current as LinkButton).Text));
}
else if (current is ImageButton)
{
control.Controls.Remove(current);
control.Controls.AddAt(i, new LiteralControl((current as ImageButton).AlternateText));
}
else if (current is HyperLink)
{
control.Controls.Remove(current);
control.Controls.AddAt(i, new LiteralControl((current as HyperLink).Text));
}
else if (current is DropDownList)
{
control.Controls.Remove(current);
control.Controls.AddAt(i, new LiteralControl((current as DropDownList).SelectedItem.Text));
}
else if (current is CheckBox)
{
control.Controls.Remove(current);
control.Controls.AddAt(i, new LiteralControl((current as CheckBox).Checked ? "True" : "False"));
}
if (current.HasControls())
{
GridViewExportUtil.PrepareControlForExport(current);
}
}
}
}
Funziona perfettamente ma ho un problema, se il dato che esporto è una stringa lunga composta di numeri per esempio 150193019543, sul file excel mi ritrovo questo 1,50193E+11. Che posso fare?
Buon lavoro a tutti
Mauro
Rispondi
Quoting
Salto rapido
Ultimi messaggi
Tutti i forum
Ricerca
Utenti online
ASP.NET
ASP.NET 2.0
ASP.NET 3.5
ASP.NET 4.0
.NET Framework
Silverlight
Windows Phone
Windows Presentation Foundation e WinForms
Windows Communication e Workflow
ASP - avanzato
ASP - base
SQL Server e MySQL
E-commerce
Hosting
Altri linguaggi e tecnologie
Windows Server, IIS & Security
Libri
OT
Commenti: blogs e notizie
Eventi
Torna al forum
| Feed
RSS
ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.
Community
Effettua il login!
Hai dimenticato la password?
Ultimi messaggi
Trovare un controllo all'interno di un gridview
sessioni scadute
variabile session
(3)
registrazione utenti
(5)
problema con il controllo create user wizard
(3)
Aggiornare contenuto compreso nei tag <asp:panel> e </asp:panel> di una pagina web, richiamandola da area riservata.
(5)
inserimento dati da form
UTENTI ONLINE
In primo piano
Annunciate le versioni ufficiali di Visual Studio 11
Rilasciato Visual Studio 11 Beta: scopri tutte le novità!
Windows 8 Consumer Preview: segui con noi la diretta
I più letti di oggi
Sviluppare applicazioni web mobile con HTML5 e jQuery mobile
Le novità di ASP.NET 4.5 (Community Days 2012)
Introduzione ad Entity Framework
Web Camp - ASP.NET MVC 3 (Community Days 2012)
Metro Style App per Windows 8 con HTML e Javascript
Migliorare le prestazioni di Entity Framework limitando l'uso del metodo Include
Windows Phone 7.5 Developer Day: costruire un'app in 60 minuti
Windows 8: introduzione allo sviluppo
Migliorare le prestazioni di Entity Framework limitando l'uso del metodo Include
Applicazioni Metro con XAML: cosa cambia per lo sviluppatore .NET con Windows 8
Media
Sviluppare applicazioni web mobile con HTML5 e jQuery mobile
Metro Style App per Windows 8 con HTML e Javascript
Tutti i media
In evidenza
Dal 29 febbraio arriva WinRTItalia.com: tutto sullo sviluppo per Windows 8 e Metro
Migliorare le prestazioni di Entity Framework limitando l'uso del metodo Include
Aprire una popup in Silverlight
Sviluppare applicazioni web mobile con HTML5 e jQuery mobile
Disegnare un'applicazione a servizi con Entity Framework e WCF
Il nuovo tag time in HTML5
Salvare e leggere rapidamente le impostazioni di un'applicazione Windows Phone
Metro Style App per Windows 8 con HTML e Javascript
MISC
I nostri autori
Collabora con noi!
Media Kit - Pubblicità sul nostro network