Exportar Datatable a Diferentes Formatos

download Exportar Datatable a Diferentes Formatos

of 16

Transcript of Exportar Datatable a Diferentes Formatos

  • 7/22/2019 Exportar Datatable a Diferentes Formatos

    1/16

    Exportar DataTable a

    diferentes formatosJavier 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.

  • 7/22/2019 Exportar Datatable a Diferentes Formatos

    2/16

    Introduccin

    Microsoft Office (MSO)es una suite ofimtica,compuesta bsicamente por aplicaciones deprocesamiento de textos ( Word ), plantilla de clculo (

    Excel ) y programa para presentaciones (PowerPoint) .

    PDF( Portable Document Format ) es un formato dealmacenamiento de documentos, desarrollado por laempresaAdobe Systems. Este formato es de tipocompuesto (imgenes y texto).

    http://es.wikipedia.org/wiki/Suite_ofim%C3%A1ticahttp://es.wikipedia.org/wiki/Adobe_Systemshttp://es.wikipedia.org/wiki/Adobe_Systemshttp://es.wikipedia.org/wiki/Suite_ofim%C3%A1tica
  • 7/22/2019 Exportar Datatable a Diferentes Formatos

    3/16

    Response. Qu es ?.

    Este objeto ASP es del tipo integrado, esdecir no tenemos que crear una instancia

    del mismo para poder utilizarlo, su funcines enviar informacin al cliente(navegador).

  • 7/22/2019 Exportar Datatable a Diferentes Formatos

    4/16

    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 httpcomo la fecha de modificacin del documento (LAST-MODIFIED) o el tiempo en elque se tiene que realizar un refresco de la pgina (REFRESH).

    Response.Cache.SetCacheability. Nos van a permitir definir si queremos que no setraiga 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.

  • 7/22/2019 Exportar Datatable a Diferentes Formatos

    5/16

    Response. Mtodos Principales.

    Response.ContentType("String").Es una propiedad queespecifica el tipo de contenido del request HTTP, que puede incluirun 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, latermina.

    Response.Buffer.Es una propiedad que si est a true (la opcinpor 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.

  • 7/22/2019 Exportar Datatable a Diferentes Formatos

    6/16

    Exportar a MS Excel//Se carga el contenido del archivo en memoria antes de enviarlo al clienteResponse.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 mtodoRenderControl, el cual acepta un HtmlTextWriter como parmetro, y sobre el cual se realiza elreenderezado. Para obtener el HtmlTextWriter lo que hago es crear primero un StringBuilder, unStringWriter 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 controlde servidor ASP.NET. Esta clase proporciona funciones de aplicacin de formato.

    System.Web.UI.HtmlTextWriter htmlWrite = newHtmlTextWriter(stringWrite);ContenidoGridView().RenderControl(htmlWrite);//Escribimos el HTML en el ExploradorResponse.Write(stringWrite.ToString());

    //Terminamos el Response.Response.End();

  • 7/22/2019 Exportar Datatable a Diferentes Formatos

    7/16

    P.I.A ( Primary Interop Assemblies )

    Los ensamblados de interoperabilidad COM permiten que el cdigono administrado (COM) se llame desde cdigo administrado (.NET)mediante Microsoft .NET Framework y el mdulo de tiempo deejecucin de lenguaje comn.

    Los ensamblados de interoperabilidad los puedes descargar en :

    http://www.microsoft.com/DOWNLOADS/details.aspx?familyid=3C9A983A-AC14-4125-8BA0-D36D67E0F4AD&displaylang=en

    Los ensamblados de interoperabilidad proporcionar un montn deopciones para trabajar con datos de Excel, tanto de lectura yescritura, permitindonos exportar crear archivos Excel confacilidad.

    http://www.microsoft.com/DOWNLOADS/details.aspx?familyid=3C9A983A-AC14-4125-8BA0-D36D67E0F4AD&displaylang=enhttp://www.microsoft.com/DOWNLOADS/details.aspx?familyid=3C9A983A-AC14-4125-8BA0-D36D67E0F4AD&displaylang=enhttp://www.microsoft.com/DOWNLOADS/details.aspx?familyid=3C9A983A-AC14-4125-8BA0-D36D67E0F4AD&displaylang=enhttp://www.microsoft.com/DOWNLOADS/details.aspx?familyid=3C9A983A-AC14-4125-8BA0-D36D67E0F4AD&displaylang=enhttp://www.microsoft.com/DOWNLOADS/details.aspx?familyid=3C9A983A-AC14-4125-8BA0-D36D67E0F4AD&displaylang=enhttp://www.microsoft.com/DOWNLOADS/details.aspx?familyid=3C9A983A-AC14-4125-8BA0-D36D67E0F4AD&displaylang=enhttp://www.microsoft.com/DOWNLOADS/details.aspx?familyid=3C9A983A-AC14-4125-8BA0-D36D67E0F4AD&displaylang=enhttp://www.microsoft.com/DOWNLOADS/details.aspx?familyid=3C9A983A-AC14-4125-8BA0-D36D67E0F4AD&displaylang=enhttp://www.microsoft.com/DOWNLOADS/details.aspx?familyid=3C9A983A-AC14-4125-8BA0-D36D67E0F4AD&displaylang=enhttp://www.microsoft.com/DOWNLOADS/details.aspx?familyid=3C9A983A-AC14-4125-8BA0-D36D67E0F4AD&displaylang=enhttp://www.microsoft.com/DOWNLOADS/details.aspx?familyid=3C9A983A-AC14-4125-8BA0-D36D67E0F4AD&displaylang=enhttp://www.microsoft.com/DOWNLOADS/details.aspx?familyid=3C9A983A-AC14-4125-8BA0-D36D67E0F4AD&displaylang=en
  • 7/22/2019 Exportar Datatable a Diferentes Formatos

    8/16

    Exportar a MS Excel ( 2 formas )

    Ejemplo 1

  • 7/22/2019 Exportar Datatable a Diferentes Formatos

    9/16

    Exportar a MS Word

    //Se carga el contenido del archivo en memoria antes de enviarlo al clienteResponse.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 ExploradorResponse.Write(stringWrite.ToString());//Terminamos el Response.Response.End();

  • 7/22/2019 Exportar Datatable a Diferentes Formatos

    10/16

    Exportar a MS PowerPoint

    //Se carga el contenido del archivo en memoria antes de enviarlo al clienteResponse.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 ExploradorResponse.Write(stringWrite.ToString());//Terminamos el Response.Response.End();

  • 7/22/2019 Exportar Datatable a Diferentes Formatos

    11/16

    Exportar a MS Word y MS PowerPoint

    Ejemplo 2

  • 7/22/2019 Exportar Datatable a Diferentes Formatos

    12/16

    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 tambinpoder agregar algunas propiedades con valores comofuente, mrgenes, tamao de pgina, estilo de pgina,presentacin inicial...

    No menos importante destacar que se trata de unproyecto de cdigo abierto, es decir, esta librera estotalmente gratuita.

    http://sourceforge.net/projects/itextsharp/http://sourceforge.net/projects/itextsharp/
  • 7/22/2019 Exportar Datatable a Diferentes Formatos

    13/16

    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 alvuelo"));document.Close();

  • 7/22/2019 Exportar Datatable a Diferentes Formatos

    14/16

    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 GetInstancede la clase PdfWriter - como argumentosrecibe el documento que acabamos de crear y un Stream. En este caso utilizamosun FileStream pero podramos haber usado cualquier Stream que admita escrituracomo 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 eltrabajo.

    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).

  • 7/22/2019 Exportar Datatable a Diferentes Formatos

    15/16

    Exportar a Adobe Reader

    Ejemplo 3

  • 7/22/2019 Exportar Datatable a Diferentes Formatos

    16/16

    Bibliografa

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

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

    En Ingls:

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

    http://www.mistrucos.net/truco-asp-net-exportar-datagrid-excel-609.htmhttp://spar.unicauca.edu.co/celulaunicauca/blogs/tecnologia/archive/2007/http://localhost/var/www/apps/conversion/tmp/scratch_4/08/27/habia-una-ves.aspxhttp://www.aspnetpro.com/NewsletterArticle/2003/09/asp200309so_l/asp200309so_l.asphttp://www.aspnetpro.com/NewsletterArticle/2003/09/asp200309so_l/asp200309so_l.asphttp://www.aspnetpro.com/NewsletterArticle/2003/09/asp200309so_l/asp200309so_l.asphttp://www.aspnetpro.com/NewsletterArticle/2003/09/asp200309so_l/asp200309so_l.asphttp://www.aspnetpro.com/NewsletterArticle/2003/09/asp200309so_l/asp200309so_l.asphttp://localhost/var/www/apps/conversion/tmp/scratch_4/08/27/habia-una-ves.aspxhttp://localhost/var/www/apps/conversion/tmp/scratch_4/08/27/habia-una-ves.aspxhttp://localhost/var/www/apps/conversion/tmp/scratch_4/08/27/habia-una-ves.aspxhttp://localhost/var/www/apps/conversion/tmp/scratch_4/08/27/habia-una-ves.aspxhttp://localhost/var/www/apps/conversion/tmp/scratch_4/08/27/habia-una-ves.aspxhttp://spar.unicauca.edu.co/celulaunicauca/blogs/tecnologia/archive/2007/http://www.mistrucos.net/truco-asp-net-exportar-datagrid-excel-609.htmhttp://www.mistrucos.net/truco-asp-net-exportar-datagrid-excel-609.htmhttp://www.mistrucos.net/truco-asp-net-exportar-datagrid-excel-609.htmhttp://www.mistrucos.net/truco-asp-net-exportar-datagrid-excel-609.htmhttp://www.mistrucos.net/truco-asp-net-exportar-datagrid-excel-609.htmhttp://www.mistrucos.net/truco-asp-net-exportar-datagrid-excel-609.htmhttp://www.mistrucos.net/truco-asp-net-exportar-datagrid-excel-609.htmhttp://www.mistrucos.net/truco-asp-net-exportar-datagrid-excel-609.htmhttp://www.mistrucos.net/truco-asp-net-exportar-datagrid-excel-609.htmhttp://www.mistrucos.net/truco-asp-net-exportar-datagrid-excel-609.htmhttp://www.mistrucos.net/truco-asp-net-exportar-datagrid-excel-609.htmhttp://www.mistrucos.net/truco-asp-net-exportar-datagrid-excel-609.htmhttp://www.mistrucos.net/truco-asp-net-exportar-datagrid-excel-609.htm