Sei sulla pagina 1di 16

Exportar DataTable a diferentes formatos

Javier Surez Ruiz

ndice: - Introduccin. - Response.


- Qu es? - Mtodos Principales.

- Cmo exportar?. - Exportar a documentos MS Office ( Word,Excel,PowerPoint)


- Exportar a pdf ( Adobe Reader).

- Bibliografa.

Introduccin

Microsoft Office (MSO) es una suite ofimtica, compuesta bsicamente por aplicaciones de procesamiento de textos ( Word ), plantilla de clculo ( Excel ) y programa para presentaciones ( PowerPoint) .
PDF ( Portable Document Format ) es un formato de almacenamiento de documentos, desarrollado por la empresa Adobe Systems. Este formato es de tipo compuesto (imgenes y texto).

Response. Qu es ?.

Este objeto ASP es del tipo integrado, es decir no tenemos que crear una instancia del mismo para poder utilizarlo, su funcin es enviar informacin al cliente (navegador).

Response. Mtodos Principales.


Response.Write (cadena). Enva la cadena de caracteres al cliente.


Response.Redirect (Url). Redirige la pgina ASP a la URL especificada. Response.Flush. Enva de inmediato los datos del buffer.

Response.Clear. Borra los datos del buffer.


Response.AddHeader. Se pueden mandar ms tipos de encabezamientos del http como la fecha de modificacin del documento (LAST-MODIFIED) o el tiempo en el que se tiene que realizar un refresco de la pgina (REFRESH). Response.Cache.SetCacheability. Nos van a permitir definir si queremos que no se traiga las pginas de cach y en vez de ello se vuelven a traer desde el servidor ( refrescando las variables y sessiones ) o si nos decidimos a usar la cache.

Response. Mtodos Principales.

Response.ContentType("String").Es una propiedad que especifica el tipo de contenido del request HTTP, que puede incluir un tipo/subtipo en la cabecera de la respuesta. El tipo siempre es de contenido general y el subtipo es especfico. El valor por defecto es text/HTML.
Response.End. Mtodo que detiene la ejecucin de la pgina, la termina. Response.Buffer. Es una propiedad que si est a true (la opcin por defecto en ASP 3.0) indica al servidor que debe utilizar el buffer. Si est a false (opcin por defecto para versiones anteriores de ASP) no lo utiliza.

Exportar a MS Excel
//Se carga el contenido del archivo en memoria antes de enviarlo al cliente Response.Clear(); //Damos la salida como attachment . Response.AddHeader("content-disposition", "attachment;filename=archivo.xls"); Response.Charset = ""; Response.Cache.SetCacheability(HttpCacheability.NoCache); //Especificamos el tipo de salida. Response.ContentType = "application/vnd.xls"; /** Para obtener el contenido HTML de un control ( en este caso un gridview) se utiliza el mtodo RenderControl, el cual acepta un HtmlTextWriter como parmetro, y sobre el cual se realiza el reenderezado. Para obtener el HtmlTextWriter lo que hago es crear primero un StringBuilder, un StringWriter sobre ste, y finalmente un HtmlTextWriter que trabaje sobre el StringWriter. */ //StringWriter Nos permite escribir informacin en una cadena. System.IO.StringWriter stringWrite = new System.IO.StringWriter(); // HtmlTextWriter Escribe caracteres de marcado y texto en una secuencia de salida de un control de servidor ASP.NET. Esta clase proporciona funciones de aplicacin de formato. System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite); ContenidoGridView().RenderControl(htmlWrite); //Escribimos el HTML en el Explorador Response.Write(stringWrite.ToString()); //Terminamos el Response. Response.End();

P.I.A ( Primary Interop Assemblies )

Los ensamblados de interoperabilidad COM permiten que el cdigo no administrado (COM) se llame desde cdigo administrado (.NET) mediante Microsoft .NET Framework y el mdulo de tiempo de ejecucin de lenguaje comn.
Los ensamblados de interoperabilidad los puedes descargar en : http://www.microsoft.com/DOWNLOADS/details.aspx?familyid=3C9 A983A-AC14-4125-8BA0-D36D67E0F4AD&displaylang=en

Los ensamblados de interoperabilidad proporcionar un montn de opciones para trabajar con datos de Excel, tanto de lectura y escritura, permitindonos exportar crear archivos Excel con facilidad.

Exportar a MS Excel ( 2 formas )

Ejemplo 1

Exportar a MS Word
//Se carga el contenido del archivo en memoria antes de enviarlo al cliente Response.Clear(); //Damos la salida como attachment . Response.AddHeader("content-disposition", "attachment;filename=archivo.doc"); Response.Charset = ""; Response.Cache.SetCacheability(HttpCacheability.NoCache); //Especificamos el tipo de salida. Response.ContentType = "application/vnd.doc"; System.IO.StringWriter stringWrite = new System.IO.StringWriter(); System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite); ContenidoGridView().RenderControl(htmlWrite); //Escribimos el HTML en el Explorador Response.Write(stringWrite.ToString()); //Terminamos el Response. Response.End();

Exportar a MS PowerPoint
//Se carga el contenido del archivo en memoria antes de enviarlo al cliente Response.Clear(); //Damos la salida como attachment . Response.AddHeader("content-disposition", "attachment;filename=archivo.ppt"); Response.Charset = ""; Response.Cache.SetCacheability(HttpCacheability.NoCache); //Especificamos el tipo de salida. Response.ContentType = "application/vnd.ppt"; System.IO.StringWriter stringWrite = new System.IO.StringWriter(); System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite); ContenidoGridView().RenderControl(htmlWrite); //Escribimos el HTML en el Explorador Response.Write(stringWrite.ToString()); //Terminamos el Response. Response.End();

Exportar a MS Word y MS PowerPoint

Ejemplo 2

Exportar a pdf ( Adobe Reader).

Que es iTextSharp? iTextSharp, es una *.dll que nos brinda ciertas funcionalidades que nos ayudarn en la creacin de documentos txt, rtf, doc, pdf, html y xml, como tambin poder agregar algunas propiedades con valores como fuente, mrgenes, tamao de pgina, estilo de pgina, presentacin inicial...
No menos importante destacar que se trata de un proyecto de cdigo abierto, es decir, esta librera es totalmente gratuita.

Exportar a pdf ( Adobe Reader).

Cmo crear un documento PDF ?

Document document = new Document(); PdfWriter.GetInstance(document, new FileStream(archivo.pdf", FileMode.OpenOrCreate)); document.Open(); document.Add(new Paragraph("Este es mi primer PDF al vuelo")); document.Close();

Exportar a pdf ( Adobe Reader).


Con esto ya tenemos nuestro primer PDF.

Creamos un objeto de tipo Document. Es nuestro PDF. Invocamos al mtodo esttico GetInstance de la clase PdfWriter - como argumentos recibe el documento que acabamos de crear y un Stream. En este caso utilizamos un FileStream pero podramos haber usado cualquier Stream que admita escritura como por ejemplo MemoryStream. Abrimos el documento con el mtodo Open. Le aadimos un prrafo con Add. Debemos darnos cuenta que el mtodo Add recibe como parmetro una interface -IElement. Esto nos va a simplificar enormemente el trabajo. Cerramos el documento con Close. Que difcil! Con esto ya tenemos creado el archivo en la ruta indicada al FileStream (en mi caso la misma ruta que el ejecutable).

Exportar a Adobe Reader

Ejemplo 3

Bibliografa
En Espaol: http://www.mistrucos.net/truco-asp-net-exportar-datagrid-excel-609.htm Tutorial que nos explica como exportar un datagrid a un archivo excel utlizando el objeto response. Buen ejemplo, aunque teoricamente escaso.

http://spar.unicauca.edu.co/celulaunicauca/blogs/tecnologia/archive/2007/ 08/27/habia-una-ves.aspx Tutorial que nos explica como exportar un dataTable a excel basandose en los ensamblados de interoperabilidad. Buen ejemplo, aunque teoricamente escaso.

En Ingls:

http://www.aspnetpro.com/NewsletterArticle/2003/09/asp200309so_l/ asp200309so_l.asp Genial tutorial que nos explica muy detalladamente como exportar un dataTable a Excel. Completo tericamente y buenos ejemplos.

Potrebbero piacerti anche