Exportar un Datagrid a Excel
Por: alex | 1 Diciembre 2004 | Ver comentarios |
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.
Demostración del Control
El control está escrito en C#, cumple con las especificaciones del CLS, la idea de este control es que pueda ser invocado desde cualquier parte de una aplicación web, solucionando los problemas antes descritos (el tener controles tipo Button, CheckBox, etc).
Para la demostración se creará una Aplicación Web en vb.net, utilizando como herramientas el Visual Studio.Net 2003 y WebMatrix

Empezando con el diseño de la página, se separan 2 secciones de la página a traves de CSS, en el lado izquierdo se usa CSS para dar el formato al DataGrid, para el lado derecho se usó el "Formato Automático"; se procurará para este ejemplo tener un documento XHTML válido, para lo cuál se borra todo el contenido generado por el Visual Studio.net 2003, el cuál lamentablemente no permite desarrollar documentos XHTML válidos, es por esa razón del uso de WebMatrix para el proyecto, por otro lado el Visual Studio 2005 (Whidbey) si soporta esta característica.

Se pone el código necesario para acceder a la base de datos y dar la funcionalidad a la paginación del DataGrid
Private Sub CargarDatos(Byval queDataGrid As dgDatos)
' Define el DataSet
Dim ds As DataSet
' Si el dataset ya está en el ViewState
' entonces recuperarlo de ahí, para no tener que acceder a la base de datos
' consecutivamente
If ViewState("datos") Is Nothing Then
ds = New DataSet
Dim da As New SqlDataAdapter("select * from customers", strConexion)
da.Fill(ds, "Clientes")
ViewState("datos") = ds
Else
ds = CType(ViewState("datos"), DataSet)
End If
' Hace el binding para el DataGrid seleccionado
Select Case queDatagrid
Case dgDatos.ConCSS
dgConCSS.DataSource = ds
dgConCSS.DataBind()
Case dgDatos.SinCSS
dgSinCSS.DataSource = ds
dgSinCSS.DataBind()
Case Else
dgConCSS.DataSource = ds
dgConCSS.DataBind()
dgSinCSS.DataSource = ds
dgSinCSS.DataBind()
End Select
End SubSegún se puede observar en el código, se asigna a través de código la clase CSS que dá el "formato" a cada parte de dgConCSS, por otro lado se utiliza el método CargarDatos para hacer el DataBinding del DataGrid que hace el PostBack (a través de la paginación).
El control se puede agregar a la barra de herramientas tanto del Visual Studio.Net o del WebMatrix, pudiendo modificar algunas de sus propiedades en tiempo de diseño, también puede crearse dinámicamente a través de código.

Finalmente se asignan las propiedades necesarias para el funcionamiento del control y se puede ver los resultados en las siguientes figuras:


Se puede observar que se pasó sin ningún error los controles de tipo Button y CheckBox respectivamente.
Elementos Utilizados
- Bajar el Control
- Bajar el Proyecto de Demostración
Autor
Alexander Concha Abarca
Instructor 3ra Estrella - VB.NET
xknown at hotmail.com


Daniel Lazarte
3 de Diciembre de 2004, 12:35:41 pm
Vi tu ejemplo, buena solucion, felicitaciones amigo.
Anthony
6 de Diciembre de 2004, 07:04:15 pm
Amigo, no sabes que alegria cuando encontre esta pagina, ya que he tenido problemas para exportar a excel con las tildes y eñes?. muchas gracias por tu control.
Daniel Nuñez
3 de Febrero de 2005, 02:25:27 pm
Hola cuando trato de exportar una grilla con mas de 60000 registros tu componente se cae y no me da los resultados esperados, que será??.
Saludos
alex
3 de Febrero de 2005, 03:26:04 pm
Si ya lo probé, en si no es problema del control sino de la enorme cantidad de datos que se quiere exportar (intenta mostrar los 60000 registros sin paginación, la aplicación consume muchos recursos), voy a aumentar una funcionalidad para exportar sólo la página que se está viendo.
Saludos
Daniel Núñez
15 de Febrero de 2005, 02:28:38 pm
Hola, yo probé tu control con una grilla sin paginación, el problema es que cuando son 60000 o más me pide el nombre de usuario y la contraseña, ya sea con tu control o con una rutina, parecida que exporta a excel…. y no se que pueda ser, me puedes ayudar
alex
15 de Febrero de 2005, 11:35:51 pm
Hola, como te dije en el comentario anterior son muchos datos los que quieres exportar y se consume muchos recursos del servidor al realizar dicha operación. Te sugiero que ordenes tus datos según los criterios que creas por conveniente, y de esa manera sólo exportes la información relacionada con éstos, me parece una manera más ordenada de tener dichos datos que agrupados en uno sólo archivo (en la siguiente versión del control como dije habrá la opción de poner un límite de datos a exportar).
Sobre tu problema en el que te pide usuario y contraseña probablemente sea porque se excede el tiempo de ejecución de dicha consulta u operación (por defecto es 30 segundos).
Saludos
Angel
4 de Marzo de 2005, 11:23:03 am
Saludos….
Tengo una duda, Como controlo la exportacion de datos, veo que al exportar comienza en la fila 2 y no 1, ¿Como puedo hacer para que exporte y comience desde la fila 1?
angel
4 de Marzo de 2005, 06:51:02 pm
Saludos !!
Tengo un problema estoy elaborando un organigrama con visio y llamando los datos de excel el exportador que tienes esta excelente me ahorro muchos problemas pero…. como puedo hacer para eliminar la primera fila ya sea con el exportador que tienes o por codigo pues eh buscado sin encontrar respuesta. . . . . lo puedo hacer manual pero lo quiero hacer lo mas automatizado que se pueda y la fila me esta dando problemas para ello
Gracias ….
Rossvan
7 de Marzo de 2005, 04:17:52 pm
Me parecio entupendo tu control, intente con un grid en C#, puedes ayudarme
alex
10 de Marzo de 2005, 10:50:59 pm
Angel:
Espero publicar la nueva versión del control en las siguientes 2 semanas, acabo de solucionar el problema que me comentas y muchos otros también. Te agradezco mucho por el feedback.
Rossvan:
No funcionó el control?. Explica que es lo que deseas hacer, sería bueno el foro para eso
Saludos
Israel
22 de Marzo de 2005, 05:06:38 pm
Hola
alguno conoce un control parecido que pueda usar en VB6 SP6???…
gracias cualquier cosa al mail
israel.munoz@dtx.cl
Elkin
30 de Marzo de 2005, 04:41:38 pm
Hola
Primero que buen control!!!
segundo
tengo un problema al exportar la series de datos en el archivo de excel todas quedan con formato texto entocnes no se dejan manipular.
Alguien sabe como puedo solucionar eso ?
Gracias
Fernando
14 de Abril de 2005, 12:36:07 pm
porfavor necesito ayuda estoy trabajando en web matrix tengo un datagrid pero cuando cargo la consulta a este datagrid los numeros me salen con muchos decimale, como puedo hacer para poder controlar ese formato en un datagrid tambien darle ese estilo de color de filas
alex
14 de Abril de 2005, 05:11:06 pm
Si utilizas columnas personalizadas (BoundColumn, HyperlinkColumn o TemplateColumn) puedes utilizar la propiedad DataFormatString, de la siguiente manera (
DataFormatString="{0:0.00}"):<asp:DataGrid id="dgDatos" runat="server" Width="50%" EnableViewState="False" OnItemDataBound="dgDatos_ItemDataBound"> <Columns> <asp:BoundColumn DataField="UnitPrice" HeaderText="UnitPrice" DataFormatString="{0:0.00}"></asp:BoundColumn> </Columns> </asp:DataGrid>Si usas columnas autogeneradas, en el evento ItemDataBound tienes que hacer el formateo del número.
Saludos
yazmin
2 de Junio de 2005, 11:40:44 am
como puedo eliminar una fila de un datagrid con solo presionar un boton
Vicman
6 de Junio de 2005, 07:21:50 pm
alguien sabe como exportar a excel pero desde una aplicacion para windows C#.net??
si alguien puede ayudarme, lo agradecere mucho
torr_juan@hotmail.com
alex
7 de Junio de 2005, 08:39:16 am
En la siguiente dirección podrás encontrar una forma de hacerlo: Mug Perú, en el tercer mensaje podrás ver que utiliza objetos no manejados para exportar un DataSet, no un DataGrid; hay otras formas también, si tengo tiempo te envío un ejemplo…
Saludos
Diego
22 de Junio de 2005, 02:52:33 pm
No funciona correctamente el dataformat string. Tengo una columna:
Donde la exporta sin formato numérico. Probé exportarla sin dataformatstring y sí lo toma como números pero toma CUALQUIER número (de 2 pasa a 200 x ejemplo)
Diego
22 de Junio de 2005, 02:52:56 pm
[asp:BoundColumn DataField=”importe” HeaderText=”Importe” DataFormatString=”{0:0.00}” ItemStyle-HorizontalAlign=”Right” /]
alex
22 de Junio de 2005, 04:07:45 pm
Para corregir eso tienes que aumentar unas cuantas reglas en una hoja de estilos
<style> td {mso-number-format:"\@"; text-align:center;} </style>, para mayo detalles puedes ver http://weblogs.asp.net/datagridgirl/archive/2003/04/14/5631.aspxSaludos
Javi
28 de Julio de 2005, 06:40:13 am
Funciona bastante bien… solo una pega, ¿hay alguna manera que guarde los ficheros de excel generados en el servidor sin pedir ningun tipo de confirmación?
Sería interesante para una aplicación que estoy haciendo. Gracias.
carlos
30 de Julio de 2005, 02:24:02 pm
No Sirve
Miguel
18 de Agosto de 2005, 09:11:13 pm
Hola, dos observaciones sobre el componente yo tengo un datagrid con columnas ocultas y a la hora de exportarlo aparecen las cabeceras de las columnas ocultas coloreadas pero sin dato, eso es por que debo poner alguna linea mas de comando?, mi otra observacion es como puedo hacer que se exporte todo en formato texto y no general, lo que sucede es que en mi grid tengo codigos como por ejemplo “654564.240″ y cuando es exportado a excel el cero del final es eliminado(”654564.24″) pues el excel lo considero un numero por eso quiero saber como hacer para exportarlo todo en formato texto.
Gracias por la atencion
Mauricio
19 de Agosto de 2005, 01:22:26 pm
Excelente tu ayuda…
Quisiera pedirte un favor muy grande
Espero me puedas ayudar
Ahora necesito exportar el Grid a Excel pero en win form.
Att. Maurcio
alex
19 de Agosto de 2005, 09:14:47 pm
Miguel: El caso que comentas no fue contemplado al momento de hacer dicho control, para lo del formato, eso debes hacerlo con hojas de estilo, pero que sólo se aplican a excel, aquí tienes un ejemplo.
Lamentablemente no tengo el tiempo suficiente para continuar con este componente, si deseas te podría enviar el código para que tu mismo hagas las modificaciones y mejoras del caso…
Mauricio: Cito un mensaje que puse arriba, que te servirá para exportar en aplicaciones Windows:
Saludos
Miguel
23 de Agosto de 2005, 04:48:03 pm
Hola Alex, muchas gracias por tu respuesta, ya pues si puedes enviame el codigo a mi email para ver en que puedo contribuir a tu componente.
saludos
Miguel
Miguel
23 de Agosto de 2005, 04:50:47 pm
Una ultima consulta la otra vez probe tu componente en el caso que un dataset llena al datagrid pero hice un caso donde el datagrid es caragdo por un datreader y tu componente no funciono, esta diseñado para el caso de dataset solamente?
o en algo estoy fallando?
Leonardo
25 de Agosto de 2005, 03:39:57 am
Tengo un problema:
Quiero exportar a excel los datos arrojados en un datagrid, pero mi aplicación es para windows y no para la web.
Si ustedes pueen ayudarme, se los agradezco de corazón, ya que soy un aficionado a la programación y vivo en un país donde no se sabe mucho de este tema.
Desde ya, muchas gracias
alex
25 de Agosto de 2005, 10:38:09 am
Lee unos mensajes más arriba, ahí puse un link al respecto
Saludos
Noe
29 de Agosto de 2005, 12:37:17 pm
Como utilizo el control, soy novato en esto de verdad muchas gracias si me pueden ayudar !!!,
Noe Sanchez Flores
29 de Agosto de 2005, 12:39:05 pm
Exporto los datos a excel, pero tengo problemas con las “eñes” y con las “tildes”, tu control me puede servir para solucionar este probelama ???
Noe Sanchez Flores
30 de Agosto de 2005, 11:05:02 am
Amigo, tengo un pequeño problem, cuando funciona localmente oea cuando el servidor es mi PC, pero caudno lo subo al servido donde va a funcionar me aparece esto.
” Namespace or type ‘DgToExcel’ for the Imports ‘Buayacorp.WebControls.DgToExcel’ cannot be found.”
alex
31 de Agosto de 2005, 03:52:13 pm
Subiste la librería relacionada a la carpeta bin de tu aplicación??
Saludos
Martin
2 de Septiembre de 2005, 02:38:40 am
los que tengan el problema de la “ñ” si colocan esto esta solucionado al igual que los tildes
Response.ContentEncoding = System.Text.Encoding.Default
Saludos
Somily
21 de Septiembre de 2005, 10:08:10 am
Si me funciono Perfecto como ya tenia yo todos los datos asignados a mi datgrid lo unico que me faltava era como poder exportar a excel todo funciono muy bien de echo solo utilice la la parte del codigo para exportar y me funciono perfecto lo que si tengo duda es que si se puede mandar imprimir directamente sin tener que pedir confiurmacion si desea guardar o no y como puedo añadirle desde codigo datos que no sean de una data grid es decir datos que tengo en texbox para que formen como parte de los encabezados …
me parece perfecto tu control y si alguno no les funcione es por que tienen que hacer referencia ala libreria que nue stro buen amigo no hizo el favor de colocar gracias y es pero me puedas ayudar
alex
22 de Septiembre de 2005, 06:12:23 pm
Somily, no se puede mandar a imprimir directamente, podrías hacerlo usando el método de
window.print()y controlando con CSS la presentación del mismo.Para lo segundo, por la forma como está programado (shame of me!), no se puede hacer lo que quieres, pero si deseas te puedo enviar el código fuente del componente indicando donde debes modificar…
Saludos
Luis
29 de Septiembre de 2005, 02:27:21 pm
Hola, muy buen control funciona bien , pero necesito poner texto en la planilla excel, como por ejemplo el título de los datos exportados ¿Se puede?..
gracias !!!
Alejandro
29 de Septiembre de 2005, 04:09:12 pm
Somilu me podrias enviar el codigo fuente del componente para modificarlo, la idea es agregar la funcionalidad de exportar mas de una grilla y darle la vista de impresión, desde ya muchas gracias
Alejandro Souza
29 de Septiembre de 2005, 08:22:17 pm
Alex me podrias enviar el codigo fuente del componente para modificarlo, la idea es agregar la funcionalidad de exportar mas de una grilla y darle la vista de impresión, desde ya muchas gracias
alex
1 de Octubre de 2005, 03:14:09 pm
Luis: Como está hecha esta versión, no se puede hacer eso, espero poner el código fuente para la siguiente semana.
Alejandro: Lo mismo que le dije a Luis.
Saludos y disculpen por las inconveniencias
Alejandro
3 de Octubre de 2005, 11:10:09 am
Encontre un control parecido, lo modifique y le agregue la funcionalidad de los titulos y subtitulos, alex si estas de acuerdo te lo envio para que lo publiques
alex
3 de Octubre de 2005, 01:57:31 pm
Está bien, me indicas tus datos y de donde lo bajaste para hacer la referencia respectiva.
Saludos
Miguel
10 de Octubre de 2005, 09:12:30 am
Hola Alex,
La otra vez me enviaste tu codigo fuente pero parece que es una version anterior al que esta publicado ya que por ejemplo no es dgToExcel.NombreArchivo = “Excel.xls” sino dgToExcel.Nombre = “Excel.xls”, ademas al compilarlo y ponerlo en mi aplicacion me pide “Debe asignar el formulario con el que hace PostBack” y esa funcionalidad no esta especificada en tu manual, por favor podrias reenviarme tu codigo fuente es que ya se en donde colocar lo del formato de texto a todo el documento y quisiera comprobarlo en tu componente para contribuir.
Saludos
Miguel
Danilo
25 de Octubre de 2005, 12:01:57 pm
Hola. tu control es bueno.
¿ se puede saltar el mensaje abrir-guardar-cancelar, y abrirlo inmediatamente el archivo exel?
Alex
25 de Octubre de 2005, 12:38:20 pm
No, eso depende del usuario y las configuraciones de su navegador.
Saludos
ANTONIO
14 de Noviembre de 2005, 08:30:00 am
Probe el proyecto de jemplo pero hay una liena que me arroja error :
Protected DgToExcel1 As Buayacorp.WebControls.DgToExcel
Adrian
14 de Noviembre de 2005, 06:52:34 pm
Hola Alex, muy bueno el control, lo hemos usado en algunas aplicaciones y está funcionando, OK!!
Mas bien se nos han ocurrido ciertas exquisiteces (al usuario en realidad) como la importar a varias hojas, incluir títulos, importar graficos??? es posible que nos proporciones el código?
Solo, Si es posible claro, de nuevo Mis felicitaciones y muchas gracias por la ayuda.
alex
14 de Noviembre de 2005, 07:53:43 pm
Hola,
Antonio: Puedes mostrar la descripción del error?
Adrian: El control está un poco desactualizado… estuve intentando mejorar algunas cosas pero lamentablemente no cuento con el tiempo suficiente para terminarlo. Con respecto a tus preguntas, si se puede añadir títulos, pero en cuanto a los gráficos no creo que soporte esa parte.
Si deseas te envío el código (lo hice cuando estaba empezando e incluye muy malas prácticas de programación)…
Gracias por los comentarios
Saludos
Adrian
15 de Noviembre de 2005, 03:07:25 pm
Bienvenido el Código Alex!! No importa si hay malas prácticas, aqui le damos vuelta, aplicamos refactoring, patrones, bestia practices (no best es bestia!!) , solo esperemos que funcione igual después de todo eso…
.
De donde lo descargo? o me lo envias por correo?
Gracias.
DENSOFT
21 de Noviembre de 2005, 09:58:13 am
hola quisiera me puedan proporcionar el codigo para poner titulo en las paginas de excel. de antemano gracias
Mirkes
7 de Diciembre de 2005, 07:18:31 am
Por favor, podrias mandarme el código Alex a mi también? Me harías un gran favor por que quiero darle una funcionalidad un poco más amplias.
Por la calidad del código no te preocupes, eso es lo de menos.
Un saludo.
Rodrigo
9 de Diciembre de 2005, 02:46:21 pm
Muchas felicidades por este control!!!!! Me ha facilitado mucho la vida, y es muy facil de usar.
Muchas gracias!!!
alex
12 de Diciembre de 2005, 11:19:54 pm
Adrian, Densoft y Mirkes, les pido disculpas por no enviarles el código, de verdad lo lamento, lastimosamente no he tenido mucho tiempo últimamente. Estoy pensando hacer una nueva versión para el .NET 2, me gustaría escuchar sus ideas. (Si todavía desean el código me avisan)
Rodrigo, gracias por los comentarios
Saludos
Emma
16 de Diciembre de 2005, 03:43:09 pm
hola!!
tendrás un ejemplo de como exportar a excel una tabla html que contiene el conjunto de datos
??????
Alex
20 de Diciembre de 2005, 07:19:36 pm
Response.Clear();Response.Charset = "";
Response.ContentType = "application/vnd.xls";
Response.WriteFile("tutabla.html");
Response.End();
Saludos
PS. Disculpa por la demora
Rodrigo
27 de Diciembre de 2005, 05:52:24 pm
Hola!!! He estado probando tu control y funciona excelentemente bien, sin embargo, me gustaria poder poner titulos en las paginas de excel y otros textos, asi que no se si seria mucha molestia que me proporcionaras el codigo para hacerle las modificaciones necesarias.
De antemano muchas gracias.
Saludos!!!!
alex
4 de Enero de 2006, 10:00:43 pm
Hola Rodrigo, disculpa por la demora, a qué correo te envío el código?
Saludos
PS. Dentro de unas semanas pondré el código en un servidor de control de versiones.
Rodrigo
6 de Enero de 2006, 04:27:03 pm
a disculpa, si puedes mandamelo a rodrigo200781@aim.com
Gracias y saludos!!!
hola alex
19 de Enero de 2006, 06:11:05 pm
hola alex, estuve viendo tu control y me parece excelente, realmente te felicito por tu control, te queria pedir si es posible que me enviaras el proyecto con la ultima version del control, ya que me gustaria aprender ciertas cosas y agregar nuevas ideas desde ya muchas gracias,
dulce
20 de Enero de 2006, 11:46:12 am
Hola alguien sabe como puedo exportar mi datagrid a crystal report porfa ayudenme. saludos
Luis
23 de Enero de 2006, 11:58:52 am
Necesito saber si se puede añadir registro en una datagrid sin que este se encuentre enlazado? y como se la hace en vb .net.
Muchas gracias.
alex
24 de Enero de 2006, 02:58:18 pm
Hola Luis,
Hasta donde sé no es posible hacer eso, el DataGrid puede considerarse sólo como un “visor”.
Saludos
jorge
31 de Enero de 2006, 01:52:04 pm
Me podrias ayudar estoy programado asp.net pero con c# no con visual, y necesito poder exportar a excel….
me ayudas.
alex
31 de Enero de 2006, 02:34:35 pm
Hola Jorge,
En qué parte exáctamente quieres que te ayude?
Saludos
jorge
1 de Febrero de 2006, 08:42:16 am
lo que pasa es que tu codigo esta hecho el vb.net pero estoy tratando de pasarlo a c#.net pero tengo problemitas…..
Fausto
2 de Febrero de 2006, 10:18:07 am
Resulta que soy novato en C#, quiero construir un método que me permita al momento de hacer clic en una fila de un datagrid, los datos se pasen a los textbox; nombres. apellidos, etc.
alex
2 de Febrero de 2006, 11:27:40 am
Hola,
Jorge: Cuáles son esos problemitas?
Fausto: Implementa el evento SelectedIndexChanged del DataGrid y asigna los valores correspondientes a los controles que deseas.
Saludos
Antonio moreno
2 de Febrero de 2006, 01:05:59 pm
excelente recuerdo, solo que busco un control para usar en vb y exportar un calculo a excel, apartir de un formulario hecho en visual basic, gracias y saludos
Fredy-Ecuador-
29 de Marzo de 2006, 12:25:08 pm
Primeramente felicitarte por tu iniciativa, luego queria saber si puedes publicar una versión de este control para windows form y en c#.
Gracias y sigue adelante
alejandro
29 de Marzo de 2006, 12:44:28 pm
bueno me gustaria saver kuales son los tipos de formato que se aplican en excel la verdad me gustaria saver si saven me gustaria k me enviaran un comentario al mi correo gracias
daniela
31 de Marzo de 2006, 11:33:40 am
necesito un datagrid mejorado al visual c#2003
Angel Zambrano
4 de Abril de 2006, 07:07:08 pm
Como puedo hacer eso mismo desde Visual Basic 6?
alex
4 de Abril de 2006, 07:49:27 pm
Hola,
Daniela: A qué te refieres con un “datagrid mejorado”
Angel: Dale un vistazo a esta dirección
Saludos
richard
18 de Abril de 2006, 04:42:25 pm
hola quisiera saber como guardar de un datagrid a un formato establecido en excel por decir q lo q se exporta del datagrid a excel no se vea desde la celda a1 sino q se le pueda asignar una celada especifica en un formato en excel establecido es decir una plantilla gracias por su atencion prestada
alex
24 de Abril de 2006, 12:42:26 pm
Hola Richard,
Para lograr hacer eso tendrías que utilizar objetos COM, revisa la siguiente dirección para que te des una idea de como funciona http://support.microsoft.com/Default.aspx?kbid=317719
Andres
24 de Abril de 2006, 03:43:32 pm
Como hago para refrescar los datos de un datagrid en C# …..por fa…alguien puede ayudarme….
alex
24 de Abril de 2006, 04:10:25 pm
Para el caso de aplicaciones web simplemente vuelve a enlazar la fuente de datos a tu DataGrid, en aplicaciones de escritorio no es necesario hacer esto.
Saludos
jorge
25 de Abril de 2006, 03:27:47 pm
nesesito enlasar una pagina de exel con visual basic(mandar datos de visual basic a una hoja de exel)
hector molina
26 de Abril de 2006, 02:44:15 pm
hey no soy un experto en microsoft visual studio .net para hacer en visual basic la exportacion de lo que tengo en mi base de datos a un datagrid que solo muestre el contenido que tiene la bd y en un dado caso como hacer que desde hacerle un clik a (por ejemplo contiene no-orden, municipio, y clave, suiendo mui llave primarya la clave) que me despiliegue todos los datos que contiene ( en un dado caso que tenga mas casos) mi base de datos la tengo en MySQL y nomas no le encuentro por fa
te agradezco de ante mano,gracias. desde chiapas
Leonel
11 de Mayo de 2006, 09:04:44 pm
hola, necesito ayuda urgente (claro si c puede jejeje), mi problema es este,tengo una aplicacion para web echa en C#, esta ia funciona la aplicacion, tengo un DataGrid que lleno con una serie de datos importados de una tabla (Folio, ID, nombre, Ver etc), configure el datagrid para que al final tenga links hacia otras paginas, el problema en si es este, quiero que al momento de darle click en la opcion ver (d cada fila), en dos TextBox me guarde el valor de 2 columnas de la misma fila, aun con mi poco conocimiento no e podido y me gustaria que me ayuden, de antemano gracias, su amigo programador Leo, PD si me pudieran responder a mi correo seria mucho mejor antares1986@hotmail.com
mary
25 de Mayo de 2006, 08:43:26 am
holaa soy mary me atrevi a escribir porke tengo un problema necesito hacer un trabajo para fin de año y no se como se trata de enlazar una tabla de ecxel a visual basic porfa ayudenme no se como hacerlo me podrian dar los pasos de como lograrlo
mary
25 de Mayo de 2006, 09:04:19 am
ayudenme plis
alex
25 de Mayo de 2006, 05:34:18 pm
Hola,
Hector: Te sugiero que revises un tutorial de ADO.NET, para conectarte a MySQL usa el conector disponible en http://dev.mysql.com/downloads/.
Mary: qué es exactamente lo que quieres hacer? a qué te refieres con “enlazar”?
Saludos
Alexbj
10 de Junio de 2006, 09:13:20 am
Hola. me parece bien lo de este control. pero no me sale, ya baje el dll y el xml y los enlace a mi proyecto. configuro las propiedades del control. pero sale un error algo del response, que es del usuario o algo asi.
Quisiera saber que me falta. que hice mal. gracias
Karensiux
14 de Junio de 2006, 09:16:22 am
Hola necesito exportar los datos de un datagrid el cual tiene columnas ocultas a excel y que en el excel no se vean los datos de las columnas ocultas y como poner titulo y dar formato a los datos del datagrid!! porfis es urgente he iintentado pero me bota todos los datos incluyendo los ocultos. Gracias de antemano si me pueden enviar ejemplos se los agradesco mucho
Lucas
14 de Junio de 2006, 10:05:18 am
Hola Alex, muy bueno tu control, me solucionó muchos problemas, pero quisiera poder perzonalizarlo un poco más y para ello necesitaria que me puedas mandar (si no es mucha molestia) el código de tu control. Gracias
lucasschaab@gmail.com
Lucas
14 de Junio de 2006, 10:08:02 am
Hola Alex, soy yo otra vez, quisiera ver si me puedes ayudar con una funcionalidad que necesitaria en el control, que es de poder exportar a excel en varias hojas.
Saludos
alex
15 de Junio de 2006, 09:02:19 pm
Hola Lucas, el control no hace otra tarea más que entregar el HTML generado por el DataGrid, así que el no existe un nivel de personalización como el que deseas (en realidad no se puede hacer mucho). Revisa el enlace de la página 75, trabajando de esa manera tendrás más control sobre el documento que exportas.
Saludos
Jorge
18 de Junio de 2006, 01:06:51 pm
Quiero sacar los datos de un datagrid y mostrarlos en cajas de texto, cuando selecciono el indice de un registro detro del datagrid
Karensiux
19 de Junio de 2006, 01:59:57 pm
Hola necesito exportar los datos de un datagrid el cual tiene columnas ocultas a excel y que en el excel no se vean los datos de las columnas ocultas y como poner titulo y dar formato a los datos del datagrid!! porfis es urgente he iintentado pero me bota todos los datos incluyendo los ocultos. Gracias de antemano si me pueden enviar ejemplos se los agradesco mucho
Por fis es urgente !!! por favor ayudenme!!!
alex
19 de Junio de 2006, 06:22:46 pm
Hola,
Jorge: Revisa la documentación o http://es.gotdotnet.com/quickstart/aspplus/ para que te des una idea de como hacerlo.
Karensiux: No sé como estés intentando exportar tus datos, pero si no me equivoco este control no debería exportar las columnas ocultas, si quieres más personalización lee el comentario 88.
Saludos
FLOR
23 de Junio de 2006, 02:25:12 pm
HOLA DISCULPE LA MOLESTIA PERO QUISIERA ME AYUDARAS DE COMO PUEDO TRANSPORTAR DATOS DE EXCEL A SQL SERVER; Y HACER LA CONECCION CON VISUAL BASIC .NET
GRACIAS
Aidee
4 de Julio de 2006, 04:22:54 pm
no manchen saken codigo para saber ke onda
Ramiro
6 de Julio de 2006, 02:01:32 pm
Hola, quisiera saber como poder hacer un boton de comando en una planilla y programarlo con visual, o exportar la planilla a visual basic
MANUEL
7 de Julio de 2006, 04:14:21 pm
hola necesito exportar datos de visual basic.net a excell,que al momento me arroje los datos y la grafica
alex
10 de Julio de 2006, 04:10:45 pm
Manuel, Dale un vistazo al link del comentario 75.
Saludos
Karensiux
19 de Julio de 2006, 03:36:28 pm
Hola ya pude exportar de un datagrid a excel pero necesito exportar tambien en el mismo excel los criterios de busqueda que seleccione para llenar el datagrid y tener un antecedente de las opciones que me escogi para la consulta. estos criterios pueden ser radiobutton, checkbox y textbox.
Gracias
duane
19 de Julio de 2006, 05:30:50 pm
hola patas la pagina esta chever ps
Aime
26 de Julio de 2006, 11:34:50 am
Hola Alex … será que tienes la codificación para C# … has creado una version en este lenguaje?
Leo
10 de Agosto de 2006, 03:53:32 pm
Tod lindo….lo unico que quiero saber es como exportar datos a excel desde un recordset por ejemplo en visual basic, o desde una flexGrid.
Gracias,
LEo
julio
23 de Agosto de 2006, 02:41:47 pm
es buena la pagina web donde se puede encontrar ejemplos de visual basic pero deberia haber un oren mejor de ejemplos de visual basic julio__666@hotmail.com
Tyrone
25 de Agosto de 2006, 10:21:21 am
Me parece un excelente Ejemplo !FELICIDADES¡
Juan Ricardo
4 de Septiembre de 2006, 04:40:10 pm
Hola, me pueden enviar el código fuente del control, lo que pasa es que en la grilla tengo una columna código con valores ‘000001′, ‘000002′, ‘000003′ pero al exportar a excell los valores se cambian por 1, 2, 3, es decir lo convierte en nùmeros y quiero hacer la modificación respectiva.
Gracias
Juan Ricardo
4 de Septiembre de 2006, 04:47:25 pm
Me los pueden mandar a los correos:
JuanRicardoChin@hotmail.com
ó
proyectos_internet@yahoo.com
chelotas
27 de Septiembre de 2006, 12:08:04 pm
Hola alex tengo una pregunta no se si se podra o no, pos te digo tengo un datagrid llenado con datos de una consulta en sql server y lo quiero es que ese datagrid llenado se vaya a un reporte de de crystal report y que ese reporte se vea en un winform que tenga el control de crystal report viewer, se podra hacer eso de antemano gracias y tu control esta bueno
alex
27 de Septiembre de 2006, 06:01:07 pm
Hola, me parece que sería mejor que hagas tu reporte utilizando Crystal Reports, no hay necesidad del DataGrid.
Saludos
Alexander Acero
29 de Septiembre de 2006, 02:52:48 pm
Hola Alexander,
muy práctico el control ya lo estoy usando en una aplicación y super; solo tengo una pregunta.
Como hago para controlar el ancho de una columna y alto de una fila puesto que a las columnas quedan muy angostas y las filas muy anchas ?
Muchas gracias por tu aporte.
Un saludo
Alexander Acero
Marco
4 de Octubre de 2006, 06:19:17 pm
Hola Amigo Buen dia.
Pregunta: ¿Tu aplicacion es comercial o gratuita? Si es gratuita ¿podrias distribuir el codigo fuente?
Saludos!!
alex
4 de Octubre de 2006, 06:40:30 pm
Es gratuita, pero felizmente
ya no tengo el código fuente de dicho “control”. Digo felizmente, porque realmente era código muy feo que simplemente obtenía el HTML resultante del control y enviaba las cabeceras necesarias para hacerlo pasar como un archivo excel.
Saludos
Cassiel
19 de Octubre de 2006, 09:24:32 am
que tal Alex, muchas gracias por el componente, me ha sido de mucha utilidad, espero colaborar pronto con este foro…..
Saludos!
miguel
24 de Octubre de 2006, 11:13:49 pm
hola quisiera saber como exportar los datos de mi datagridview desde visual net 2005 a Excel
alex
25 de Octubre de 2006, 07:33:37 am
Miguel, revisa lo siguiente http://www.gridviewguy.com/ArticleDetails.aspx?articleID=202
Jota
28 de Octubre de 2006, 03:39:38 pm
Hola Alex,
El control me funciona bien, pero tengo un problema, aunque ya alguien comento que le sucedio algo similar, resulta que tengo un campo que llega con valores como este 0299359961; con cero(0) al principio, entonces cuando lo pasa a excel lo quita, y sale 29935E+1, es decir no me lo pasa como texto, ya he probado muchas cosas, inclusive una recomendacion que diste, hasta con formatting expressions pero no he podido, tu ya sabes de casualidad como puedo hacer?
gracias
rafael
30 de Octubre de 2006, 04:13:46 pm
oye me gustaria saber si ya tienes la nueva version del control porque este no me sirve para exportar muchos registro, truena
alex
30 de Octubre de 2006, 05:13:39 pm
No, no tengo, ni pienso tenerlo :-D.
El funcionamiento del control es simple, sólo recupera el HTML generado por el DataGrid, y eso envía al cliente. Es por eso que el proceso es lento y consume muchos recursos.
Saludos
Alonso
9 de Noviembre de 2006, 12:41:39 pm
Hola, me parece muy bueno pero lo que quiero saber es como exportar un datagridview (vb.NET 2005) a un excel…
Por que el ejemplo que muestran es de ASP.net y lo que yo quiero es localmente un sistema interno en .net (cliente - servidor), les agradeceria que me ayudaran, gracias de ante mano
Erica
9 de Noviembre de 2006, 04:45:49 pm
Hola;
El ejercicio es muy bueno pero me gustaria que se construyera con clases para ser programada en csharp, agradezco por la ayuda.
Gracias
alex
9 de Noviembre de 2006, 10:25:31 pm
Alonso, para exportar un DataGridView, tu mismo tienes que implementar la funcionalidad para pasar los datos a Excel (dato a dato). Por otro lado, si deseas algo más “profesional”, podrías hacer uso de Reporting Services o Crystal Reports.
Erica, a qué parte te refieres? Existen conversores de código que permiten pasar de vb.net a c#
Saludos
Erica
11 de Noviembre de 2006, 05:16:15 pm
Hola Gracias por responderme, pero a lo que me refiero es que este programa se pueda utilizar pero solo en c sharp sin utilizar el ASp
Gracias por la ayuda que me puedas brindar
alex
11 de Noviembre de 2006, 06:06:02 pm
No, no se puede usar para en aplicaciones de escritorio, como mencioné en el comentario #118, tu misma debes implementar esa funcionalidad, un ejemplo puedes encontrar en el comentario #17.
Por otro lado, en codeproject.com existe -bastante- código que permite exportar datos de DataSets a formatos de texto plano, excel, etc.
Saludos
Miguel Angel
14 de Noviembre de 2006, 06:12:38 pm
Hola estoy desarrollando un sistema de gestion de para un Departamento de Personal en Visual basic; con un lector biometrico para controlar las entradas y salidas, ya tengo la base de datos en Mysql lo que necesito saber es como almacenar el dato capturado por el dispositivo. Por cierto el dispositivo es un Hamster Nitgen con un sensor de deteccion de presencia de dedos
Gracias por la ayuda que me puedan brindar…
alex
14 de Noviembre de 2006, 06:27:52 pm
Miguel, normalmente cada producto brinda APIs o SDKs para interactuar con ese tipo de dispositivos, te sugiero que revises la página del producto al que haces referencia.
Saludos
hummer
6 de Diciembre de 2006, 06:31:21 pm
Como exportar datos de un datagrid en c# .NET 2005 a un excel.
alex
6 de Diciembre de 2006, 08:35:09 pm
Revisa el artículo Exportar el contenido de un GridView a Excel.
PS. Siempre revisa los enlaces relacionados
Rolando Escobar
28 de Diciembre de 2006, 08:23:19 pm
Estimado. El control lo he utilizado sin problemas ASP.NET 1.1, ahora tengo que exportar 3 grillas y el problema es que el response.end parece me juega una mala pasada, intente utilizando delegados para llamar pero el exportar me corta “la inspiración”… ¿tienes alguna idea?, estoy medio apurado y no quiero inventar la rueda y ponerme a investigar y hacerlo al viejo estilo … disculpa si te interrumpo.. se lo que es estar lleno de pegas justamente en esta epoca…
Feliza Año 2007 para tí y para tod@s
Slds.
Rolando
alex
28 de Diciembre de 2006, 09:29:09 pm
Rolando, en efecto, el control invoca a Response.End luego de exportar los contenidos del DataGrid.
Me parece que la única alternativa que tienes por este momento, es hacerlo al viejo estilo -el control hace lo mismo. Revisa el enlace del comentario #124
Saludos y Feliz 2007
Elmer
30 de Diciembre de 2006, 07:02:37 pm
Me parecio entupendo pero me guataria que sea en aplicacion para windows con datagridview en C#, puedes ayudarme, toy usando C# . Net 2005
Dario
9 de Enero de 2007, 04:18:26 pm
Hola esta muy bueno este foro pero no encuntro lo que busco yo quiero en una aplicacion para windows exportar los datos de un dataset a excel y todas las respuestas que encuentro son para aplicaciones web agradeceria mucho su ayuda mi imeil es dtumaida@hotmail.com
alex
10 de Enero de 2007, 09:07:28 pm
Dario, revisa los comentarios 17 o 75
Jorge León
12 de Enero de 2007, 09:38:41 am
Hola.
Este código es de muy buena utilidad. Lo he usado en varios datagrid y me ha funcionado perfectamente.
Pero tengo un datagrid que no sé porque no funciona. El problema está en que cuando ejecuta la función ‘Exportar()’ del código me sale el siguiente error en la web:
La colección de controles no puede modificarse porque el control contiene bloques de código (por ej. ).
Tienes alguna idea de porque me pasa esto?
Muchas gracias y saludos!
alex
12 de Enero de 2007, 01:35:42 pm
He tenido errores parecidos pero utilizando otras cosas, no puedo recomendarte algo si no sé en qué escenario estás usando el control…
Revisa el comentario #124 para una explicación del funcionamiento del control.
Local Català
23 de Febrero de 2007, 05:01:29 am
Mi pregunta es: como vuelco un Datagrid otra vez a su origen?.. o sea, una tabla access por ejemplo
Julieta
6 de Marzo de 2007, 12:26:02 pm
Hola, Alex, me podrias enviar por favor el proyecto VB, la ultima versión que tienes. Y de que forma podria crear un nuevo archivo cuando he llegado al tope de los registros que Excel permite, pues estoy trabajando con una tabla bastante grande que me sobrepasa el limite, pero quiero que la opción sea crear varios archivos de excel a medida que vaya llenando cada uno de ellos.
Agradezco tu ayuda
alex
6 de Marzo de 2007, 11:21:34 pm
Hola Julieta, lamentablemente ya no cuento con ese ejemplo. Pero lo que intentas hacer es relativamente sencillo: haces la paginación desde un procedimiento almacenado y asignas sólo parte del conjunto de datos que tienes al DataGrid, luego sólo exportas el contenido de éste último.
Si necesitas modificar el código del control, puedes como está hecho en http://www.buayacorp.com/archivos/exportar-el-contenido-de-un-gridview-a-excel/
Saludos
Julieta
7 de Marzo de 2007, 11:01:59 am
Gracias Alex, solo que yo estoy trabajando con VB.NET , no se si tienes un ejemplo que no sea con c#
Muchas Gracias
alex
7 de Marzo de 2007, 11:26:02 am
Puedes usar un conversor de c# a vb.net
Saludos
eden
7 de Marzo de 2007, 06:48:57 pm
Debe asignar el objeto Response que se devuelve al usuario, a través de la propiedad Response
me aparece este error me podrias explicar como funciona el control ya que soy primerizo
saludos edarreola@gmail.com
alex
7 de Marzo de 2007, 10:08:54 pm
Fue un error de novato que también cometí al hacer eso
Lo que tienes que hacer es asignar a la propiedad Response de la clase DgToExcel (creo que se llama así) el valor de Page.Response o HttpCurrent.Current.Response
Saludos
Martín Bortagaray
9 de Marzo de 2007, 03:07:55 pm
Hola, excelente tu trabajo. Me podrías facilitar el fuente? necesito hacerle algunos retoques, te lo agradecería mucho
marta
21 de Marzo de 2007, 06:38:28 am
Hola a todos, necesitaria saber como puedo en Vb6 extraer datos de un excel, utilizarlos para ir haciendo updates una tabla de SQL
Daniel
16 de Abril de 2007, 12:07:04 pm
Estimado Alex :
Estoy tratando de utilizar el control q expones pero en vez de usar un dataset, estoy intentando utilizar un sqldatareader pero al abrir el excel, aparece vacio. el sqldatareader se llena de datos desde un procedimiento almacenado.
Gracias
Daniel Leon
Veronica
25 de Mayo de 2007, 07:17:38 pm
Hola, hay alguna forma de que la aplicacion guarde en una ruta previamente definida por codigo y que no sea el usuario quien diga donde se va a guardar el archivo, lo necesito asi, por que requiero enviarlo como archivo adjunto en un correo, todo manejado por codigo.
Gracias.
Veronica
Lorena
22 de Julio de 2007, 03:15:40 pm
hola necesito de su gran ayuda deseo saber que DLL soportan codifiacion visual basic.net para que interactue con un sensor de huella dactilar.
Yo adquiri un sensor biométrico BIOPOD.
Ceci
28 de Julio de 2007, 02:42:48 pm
Hola estoy trabajando en un sensor BIOPOD , mi problema es q no tengo LAS Dll del sensor y no se si tengo q utilizar un SDK o un OCX Si alguien de Uds me lo puede facilitar el SDK, o el OCX Necesito usarlo con un sistema de control de personal aplicado en VB.NET con base de datos SQL. Gracias por su ayuda…
Velky
28 de Julio de 2007, 02:56:04 pm
tengo el Biopod de apc como sensor, efectivamente trae un sistema de instalación pero no encuentro los ocx, y mucho menos hemos logrado enlazar el sensor con el software el cual está desarrollado en vb y en sql.
espero alguna respuesta……….gracias.
juan carlos sandoval
9 de Agosto de 2007, 05:07:54 pm
hola Hepl S.o.S. que tal quisiera que me ayuden ,he estado intentando de una u otra manera ,veras dibuje en un formulario el modela de una boleta de venta pues el problema aqui es que quiero que los datos que tengo en el formulario se pueda imprimir atraves de un crystal report, printdocument , los ques ea pero que se imprima si tienes un jemplo similar mandamelo a mi correo jsandoval_g@hotmail.com
les estare muy agradecido
alexander
20 de Agosto de 2007, 08:59:05 am
hola amigo 2 cosas no se si me solucionaran este problema que tengo en vb.net2003
1:como crear un codigo que modifique el ancho de la columna en un datagrid
2:como puedo hcaer que un formulario sea una estrella o un circulo y un popup
3:que salga una ventana como el msn cuando otro usuario te manda un mensaje….
espero respuesta pronto …..gracias
alexander
20 de Agosto de 2007, 09:00:27 am
espero q me puedan solucionar cuanto antes ….gracias
alexander
20 de Agosto de 2007, 09:02:20 am
todo es en vb.net muchas gracias
alex
Rafael
4 de Septiembre de 2007, 12:59:22 pm
Hola quisiera saber como le hago para que este control funcione con un gridview que tiene la propiedad de paginacion en true
si dicha propiedad la pongo en false funciona correctamente pero el requerimiento es que el grid este paginado.
ah otra pregunta puedo exportar a excel un datagrid y al mismo tiempo graficar esos datos en excel?
gracias y Saludos!!
Rafael
4 de Septiembre de 2007, 01:05:01 pm
el control es muy bueno solo necesito que permita la paginacion
bryan
17 de Septiembre de 2007, 09:08:32 pm
quiero saber la contraseña de el oso_lame@hotmail.com
bryan
17 de Septiembre de 2007, 09:10:44 pm
oso_lame por favor dame tu nueva contraseña
Jimmy Perez
22 de Septiembre de 2007, 02:07:19 pm
Bueno muy bueno.
pero como hago lo mismo si es desde un window form.
como hago para pasar el formato del datagrid a excel. porque los datos si pasan pero el fondo, el color de las columnas o el coloor del texto eso no. como lo haria.
Patty
30 de Octubre de 2007, 09:47:52 am
Hola, tengo un problemita que antes no me habia ocurrido al utilizar el objeto y es que al momento de hacer dgToExcel.Exportar() esta perdiendo la ubicación del archivo y el excel envia el error. Si le agreso el path, lo abre, pero me cambia el nombre por el de la página que lo invoco. Si no le agrego el path, no lo abre y envia error, ya que se fue al area de temporales.
Milu
22 de Enero de 2008, 01:44:03 pm
Excelente el control!! Me sirvio mucho. Gracias!!!
Luis H
15 de Abril de 2008, 08:25:03 pm
Por favor Alex o alguna persona que me pueda orientar… COMO puedo exportar a Excel o PDF mas de 30000 registros sin que me salga un error de Tipo SystemOutmemory