Categories
.NET ASP.NET Excel

Exportar el contenido de un GridView a Excel

Hace ya bastante tiempo publiqué un pequeño "control" para exportar un Datagrid a Excel, esa vez decidí no publicar el código fuente debido a que éste tenía demasiados errores de programación -recién empezaba con .NET :-D.

Para mi sorpresa, al parecer este control fue utilizado por un gran número de personas y desde ese entonces he recibido varias consultas sobre el funcionamiento del mismo, algunas simples y otras imposibles de hacer por la forma como se hacía la exportación.

Categories
.NET Artí­culos ASP.NET Excel

Exportar un Datagrid a Excel

Introducción

Tomando como base las diferentes propuestas presentadas por Ken Walker, Mike Dolan y Scott Michell, en la que la mayoría de estas y otras soluciones ocurre que cuando existen columnas tipo BoundColumn o TemplateColumn que contienen controles tipo Button, LinkButton, CheckBox o Controles Web que necesitan ser puestos dentro de un formulario del lado del servidor, aquellos que pueden provocar un PostBack, mandan un error que dice: "Control ControlID" del Tipo ‘TipoControl" debe estar dentro de un etiqueta form con el atributo runat=server, esto sucede porque el método RenderControl() aplicado al DataGrid (utilizado en la mayoría de las propuestas vistas) invoca recursivamente el mismo método pero de cada control visible que existe en el DataGrid. Este método invoca a otro método que es el Page.VerifyRenderingInServerForm(), la función de éste último es que verifica que un control es generado después de que el formulario del lado del servidor ha empezado ha generarse, pero antes de que éste termine de generarse.