Visual C++ .NET - Exporta Datagrid a excel

 
Vista:

Exporta Datagrid a excel

Publicado por Exportar Datagrid a excel (1 intervención) el 17/08/2018 22:54:19
hola, les cuento que llevo un buen rato trato de solucionar un problema con las descargas del data grid al excel, y es que en vez de mostrarme los datos que necesito me aparece "Inherit". estaré pendiente de cualquier ayuda, gracias.

pd: al exportar a excel el datagrid, solo me muestra bien los emcabezados.

este es mi codigo;
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
protected void btnGridviewToExcel_Click(object sender, EventArgs e)
{
     Microsoft.Office.Interop.Excel.Application XcelApp = new Microsoft.Office.Interop.Excel.Application();
     XcelApp.Application.Workbooks.Add(Type.Missing);
 
     for (int i = 1; i < this.grvAnalisis.Columns.Count + 1; i++)
     {
         XcelApp.Cells[1, i] = this.grvAnalisis.Columns[i - 1].HeaderText;
     }
 
     for (int i = 0; i < this.grvAnalisis.Rows.Count; i++)
     {
         for (int j = 0; j < this.grvAnalisis.Columns.Count; j++)
         {
             XcelApp.Cells[i + 2, j + 1] = grvAnalisis.Rows[i].Cells[j].ValidateRequestMode.ToString();
             grvAnalisis.Visible = true;
         }
     }
     XcelApp.Columns.AutoFit();
     XcelApp.Visible = true;
 
     Response.Clear();
     Response.Buffer = true;
     Response.ContentEncoding = System.Text.ASCIIEncoding.UTF8;
     Response.AddHeader("content-disposition", "attachment;filename=AnalisisDeCurva.xls");
     Response.ContentType = "application/vnd.ms-excel;";
     StringBuilder sb = new StringBuilder();
     StringWriter sw = new StringWriter(sb);
     HtmlTextWriter hw = new HtmlTextWriter(sw);
     Page.Controls.Add(Form);
     Form.Controls.Add(grvAnalisis);
     grvAnalisis.AllowPaging = true;
     this.CargarData();
 
     foreach (TableCell cell in grvAnalisis.HeaderRow.Cells)
     {
         cell.BackColor = grvAnalisis.HeaderStyle.BackColor;
     }
     foreach (GridViewRow row in grvAnalisis.Rows)
     {
         row.BackColor = Color.White;
         foreach (TableCell cell in row.Cells)
         {
             if (row.RowIndex % 2 == 0)
             {
                 cell.BackColor = grvAnalisis.AlternatingRowStyle.BackColor;
             }
             else
             {
                 cell.BackColor = grvAnalisis.RowStyle.BackColor;
                 cell.BackColor = Color.White;
             }
         }
     }
     Response.Charset = "iso-8859-1";
     Response.Charset = "UTF-8";
     Response.Write(sw);
     Response.Output.Write(sw.ToString());
     Response.End();
}
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
Imágen de perfil de Alejandro

Problema al exportar DataGridView a Excel

Publicado por Alejandro (265 intervenciones) el 14/02/2024 22:54:35
El problema que estás experimentando al exportar el DataGridView a Excel y ver "Inherit" en lugar de los datos esperados puede deberse a cómo estás accediendo a los valores de las celdas y configurando el contenido en el código. Aquí hay algunas sugerencias para solucionar el problema:

1. Acceso a los datos: En lugar de utilizar `ValidateRequestMode.ToString()` para acceder al valor de la celda, intenta usar `Text` o `Value` según corresponda. Por ejemplo:
1
XcelApp.Cells[i + 2, j + 1] = grvAnalisis.Rows[i].Cells[j].Text;

2. Configuración de estilos: La configuración de estilos en el GridView puede afectar la exportación a Excel. Asegúrate de que el contenido se esté asignando correctamente y que no estés sobrescribiendo el contenido con "Inherit". Puedes probar a comentar las secciones de código relacionadas con el formato y estilos para ver si eso resuelve el problema.

3. Configuración de Response: La configuración de la respuesta para la exportación a Excel podría simplificarse. Intenta utilizar `ContentType` específico para Excel y eliminar configuraciones innecesarias. Por ejemplo:
1
2
3
4
Response.Clear();
Response.Buffer = true;
Response.AddHeader("content-disposition", "attachment;filename=AnalisisDeCurva.xls");
Response.ContentType = "application/ms-excel";

4. Eliminación de configuraciones redundantes: Puedes eliminar configuraciones redundantes como `Response.Charset` y `Response.Output.Write` ya que pueden no ser necesarias para la exportación de Excel.

Después de realizar estos cambios, verifica si el problema persiste. Además, verifica la fuente de tus datos para asegurarte de que los valores que intentas exportar están correctamente cargados en el GridView antes de la exportación.
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