ASP.NET - Exportar datos de gridView a excel

 
Vista:

Exportar datos de gridView a excel

Publicado por Daniel (62 intervenciones) el 16/04/2007 19:24:23
Hola a todos

Mediante un SqlDataReader, lleno de datos un gridview. Deseo exportar los datos del gridView a un archivo excel. Alguien sabe como hacerlo??? estoy realmente desesperado con este tema.

Uso visual studio 2005, con sql server 2000.

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Exportar datos de gridView a excel

Publicado por Oscar Omar Pineda (1 intervención) el 26/09/2008 00:58:35
Aqui te proveo un codigo haber si te funciona ok, a mi me funciona.
Para utilizar este codigo necesitas importar una clase:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<% @ import namespace = "system.IO" % >
 
Codigo para pasar a excel
 
Dim sb As New StringBuilder()
Dim sw As New StringWriter(sb)
Dim htw As New HtmlTextWriter(sw)
 
Dim page As New Page()
Dim form As New HtmlForm()
 
GridView1.EnableViewState = False
 
' Deshabilitar la validación de eventos, sólo asp.net 2 
page.EnableEventValidation = False
 
' Realiza las inicializaciones de la instancia de la clase Page que requieran los diseñadores RAD. 
page.DesignerInitialize()
 
page.Controls.Add(form)
form.Controls.Add(GridView1)
 
page.RenderControl(htw)
 
Response.Clear()
Response.Buffer = True
Response.ContentType = "application/vnd.ms-excel"
Response.AddHeader("Content-Disposition", "attachment;filename=data.xls")
Response.Charset = "UTF-8"
Response.ContentEncoding = Encoding.[Default]
Response.Write(sb.ToString())
Response.[End]()
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

RE:Exportar datos de gridView a excel

Publicado por veronica (1 intervención) el 01/12/2013 00:02:51
Amigo gracias por la ayuda, este ejercicio fue bueno y practico. Muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Exportar datos de gridView a excel

Publicado por Carlos A J C (1 intervención) el 02/04/2014 03:18:22
Hola, muy bueno tu codigo,
pero como le agregar un encabezado

Nombre: xcvxvxcv
Fecha: 8/9/2014
imagen : url://///
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Exportar datos de gridView a excel

Publicado por miriam (1 intervención) el 27/05/2014 22:25:58
super..tenia mas de una semana intentado con varios codigos que no funcionaron..excelente aporte!! me salvaste!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Exportar datos de gridView a excel

Publicado por Javier Guerrero (16 intervenciones) el 24/04/2007 16:24:46
si estas usando VB esta es la forma mas facil.....

lo pones en el boton de exportar

Me.gvEstadisticas = nombre del gridview es lo único que debes cambiar

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Dim sb As StringBuilder = New StringBuilder()
Dim SW As System.IO.StringWriter = New System.IO.StringWriter(sb)
Dim htw As HtmlTextWriter = New HtmlTextWriter(SW)
Dim Page As Page = New Page()
Dim form As HtmlForm = New HtmlForm()
Me.gvEstadisticas.EnableViewState = False
Page.EnableEventValidation = False
Page.DesignerInitialize()
Page.Controls.Add(form)
form.Controls.Add(Me.gvEstadisticas)
Page.RenderControl(htw)
Response.Clear()
Response.Buffer = True
Response.ContentType = "application/vnd.ms-excel"
Response.AddHeader("Content-Disposition", "attachment;filename=data.xls")
Response.Charset = "UTF-8"
Response.ContentEncoding = Encoding.Default
Response.Write(sb.ToString())
Response.End()
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Exportar datos de gridView a excel

Publicado por Pablo Guzman (1 intervención) el 10/07/2009 17:40:22
Hola Javier

Estoy que me lleva el cuerno por no podder exportar un girdView a Excel, utilice el tuyo y mucho mas, pero no consigo el que quiero, cuando corro el tuyo si lo exporta pero lo exporta todo con imagenes de la pagina,

E intentado bajar muchos codecs y no funciona, yo utilizo visual studio 2008 en asp.net lenguaje VB.

Espero me puedas ayudar, gracias..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Exportar datos de gridView a excel

Publicado por Carlos Javier Ortiz Delgado (1 intervención) el 17/03/2010 04:41:53
Gracias por su valioso aporte.

Lo incorporé en un par de GridView de estadísticas en Unidades y en Pesos, y me funcionó perfecto.

Muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Exportar datos de gridView a excel

Publicado por Lays (1 intervención) el 04/06/2010 00:09:04
si en mi grilla tengo checkbox como hago para que no se exporten con tu codificacion?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Exportar datos de gridView a excel

Publicado por juanz (1 intervención) el 14/12/2011 17:37:19
Excelente código, me ayudó muchisimo, gracias Javi Guerrero, eres un gran programador. Estaba muy desesperado pensando lo dificil que sería xportar a excel gran cantidad de datos de un gridview, pero gracias a Dios y a ti, solucioné el problema muy facilmente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Exportar datos de gridView a excel

Publicado por George (1 intervención) el 06/03/2014 13:30:48
Estuve tratando de exportar el grid view a excel sin que me exportara la página completa durante dos días...
Esta es la solución definitiva al problema.

Gracias por el código.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Exportar datos de gridView a excel

Publicado por Ettore (1 intervención) el 11/12/2007 09:24:05
http://www.gridviewtoexcel.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Exportar datos de gridView a excel

Publicado por Kethy ´s (1 intervención) el 27/05/2008 20:51:02
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Protected Sub Button1_Click1(ByVal sender As Object, ByVal e As System.EventArgs)
    Response.Clear()
    Response.AddHeader("content-disposition", "attachment;filename=Registros.xls")
    'Response.BufferOutput = True
    'Response.ContentEncoding = System.Text.Encoding.UTF8
    'Response.Charset = "UTF-8"
    'Response.ContentEncoding = System.Text.Encoding.Default
    'Me.EnableViewState = False
    'Response.Cache.SetCacheability(HttpCacheability.NoCache)
    Response.ContentType = "application/vnd.ms-xls"
    GridView1.AllowPaging = False
    GridView1.Columns(5).Visible = False
 
    Dim stringWrite As System.IO.StringWriter = New System.IO.StringWriter
    Dim htmlWrite As System.Web.UI.HtmlTextWriter = New HtmlTextWriter(stringWrite)
    ' GridView1.RenderControl(htmlWrite)
    Response.Write(stringWrite.ToString())
    Response.End()
    GridView1.Columns(5).Visible = True
    'gv.AllowPaging = True
End Sub

Hola:

Yo uso este código...

espero te funcione...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Exportar datos de gridView a excel

Publicado por Oscar Mendez (1 intervención) el 31/07/2008 00:23:15
Primero supongo que ya tienes todos los datos en el Gridview y ya se muestra en el webForm.

Como segundo paso tienes que agregar un boton y en el evento click agregamos el siguiente codigo:

1
2
3
4
5
6
7
8
9
10
11
12
Response.ClearContent();
Response.AddHeader("content-disposition", "attachment;filename=FileName.xls");
Response.Charset = "";
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.ContentType = "application/vnd.xls";
 
System.IO.StringWriter stringWrite = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
 
GridView1.RenderControl(htmlWrite);
Response.Write(stringWrite.ToString());
Response.End();

Luego debes agregar el metodo sobrecargado del metodo VerifyRenderingInServerForm, y dentro de este metodo no ponemos nada:

1
2
3
4
public override void VerifyRenderingInServerForm(Control control)
{
 
}

Y asi ya tienes funcionando el Gridview y lo puedes exportar a excel.


Copiado de:
http://eleddy.blogspot.com/2007/10/exportar-la-salida-de-un-gridview-excel.html
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Exportar datos de gridView a excel

Publicado por jaz (1 intervención) el 26/04/2011 21:54:21
hola chic@s necesito de su ayuda quisiera mandar unos campos de un gridview a un libro de excel que ya tengo presiseñado, pero nose como hacerle lo que he encontrado es esto:
<%
Response.Buffer = True
Response.ContentType = "application/vnd.ms-excel"
Response.AddHeader("content-disposition", "attachment; filename=reportes_resumen_xls.xls")
%>

pero lo que hace es crearme un nuevo archivo y pues no tiene formato ni nada.
Espero y me puedan ayudar por favor.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Exportar datos de gridView a excel

Publicado por sergio t (4 intervenciones) el 07/12/2013 00:38:01
Dale una mirada a esto
http://sergiotardio.blogspot.com/2011/10/gridview-excel-en-un-clic.html?m=1

espero t sirva
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Exportar datos de gridView a excel

Publicado por ia (1 intervención) el 04/02/2020 01:23:08
ACA LES DEJO UNA FUNCION MENOS COMPLICADA Y FUNCIONAL PROBADA AL 2019


PARA VB.NET

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Private Sub GenerarExcel()
 
 
    Dim excel As Microsoft.Office.Interop.Excel.Application = New Microsoft.Office.Interop.Excel.Application()
    excel.Application.Workbooks.Add(True)
    Dim ColumnIndex As Integer = 0
    For Each col As DataGridViewColumn In GrillaReporte.Columns
        ColumnIndex += 1
        excel.Cells(1, ColumnIndex) = col.Name
 
    Next
 
    Dim rowIndex As Integer = 0
    For Each row As DataGridViewRow In GrillaReporte.Rows
 
        rowIndex += 1
        ColumnIndex = 0
        For Each col As DataGridViewColumn In GrillaReporte.Columns
 
            ColumnIndex += 1
            excel.Cells(rowIndex + 1, ColumnIndex) = row.Cells(col.Name).Value
 
        Next
 
 
    Next
 
    excel.Visible = True
 
 
End Sub


PARA C#

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
private void GenerarExcel()
{
 
    Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
 
    excel.Application.Workbooks.Add(true);
 
    int ColumnIndex = 0;
 
    foreach (DataGridViewColumn col in GrillaArticulos.Columns)
    {
        ColumnIndex++;
 
        excel.Cells[1, ColumnIndex] = col.Name;
 
    }
 
    int rowIndex = 0;
 
    foreach (DataGridViewRow row in GrillaArticulos.Rows)
    {
 
        rowIndex++;
 
        ColumnIndex = 0;
 
        foreach (DataGridViewColumn col in GrillaArticulos.Columns)
        {
 
            ColumnIndex++;
 
            excel.Cells[rowIndex + 1, ColumnIndex] = row.Cells[col.Name].Value;
 
        }
 
    }
 
    excel.Visible = true;
 
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar