Foros del Web » Programando para Internet » ASPX (.net) »

Problema en Generar/Crear un Archivo Excel a partir de una consulta Sql en Asp.Net C#

Estas en el tema de Problema en Generar/Crear un Archivo Excel a partir de una consulta Sql en Asp.Net C# en el foro de ASPX (.net) en Foros del Web. Hola a todos, pues esta vez vengo con un problema que no logro identificar y es que no me logra lsitar los datos de mi ...
  #1 (permalink)  
Antiguo 02/10/2012, 16:48
Avatar de DeivisAndres  
Fecha de Ingreso: febrero-2012
Ubicación: Colombia
Mensajes: 305
Antigüedad: 12 años, 2 meses
Puntos: 41
Pregunta Problema en Generar/Crear un Archivo Excel a partir de una consulta Sql en Asp.Net C#

Hola a todos, pues esta vez vengo con un problema que no logro identificar y es que no me logra lsitar los datos de mi BD, para ver que puedo hacer en estos casos... el codigo que tengo es el siguiente y algunas imagenes:

Código Javascript:
Ver original
  1. protected void ibExcele_Click(object sender, ImageClickEventArgs e)
  2.         {                        
  3.             // Crear un objeto SqlConnection, y luego pasar la ConnectionString al constructor.            
  4.             SqlConnection Conection = new SqlConnection(CadenaString);
  5.  
  6.             // Utilizar una variable para almacenar la instrucción SQL.
  7.             string SelectString = "SELECT id_pregunta AS ID, descripcion AS Pregunta, opcion AS Opcion, COUNT(id_estudiante) AS Numero_Votos FROM respuestas_encuentas, preguntas WHERE respuestas_encuentas.id_pregunta = preguntas.id GROUP BY id_pregunta, opcion, descripcion";                        
  8.  
  9.             SqlDataAdapter Adaptador = new SqlDataAdapter(SelectString, Conection);
  10.  
  11.             DataSet DS = new DataSet();
  12.  
  13.             // Abrir la conexión.
  14.             Conection.Open();
  15.             Adaptador.Fill(DS);
  16.             Conection.Close();
  17.  
  18.             // Creamos un objeto Excel.
  19.             Excel.Application Mi_Excel = default(Excel.Application);
  20.             // Creamos un objeto WorkBook. Para crear el documento Excel.          
  21.             Excel.Workbook LibroExcel = default(Excel.Workbook);
  22.             // Creamos un objeto WorkSheet. Para crear la hoja del documento.
  23.             Excel.Worksheet HojaExcel = default(Excel.Worksheet);            
  24.  
  25.             // Iniciamos una instancia a Excel, y Hacemos visibles para ver como se va creando el reporte,
  26.             // podemos hacerlo visible al final si se desea.
  27.             Mi_Excel = new Excel.Application();
  28.             Mi_Excel.Visible = true;
  29.            
  30.             /* Ahora creamos un nuevo documento y seleccionamos la primera hoja del
  31.              * documento en la cual crearemos nuestro informe.
  32.              */
  33.             // Creamos una instancia del Workbooks de excel
  34.             // Creamos una instancia de la primera hoja de trabajo de excel            
  35.             LibroExcel = Mi_Excel.Workbooks.Add();
  36.             HojaExcel = LibroExcel.Worksheets[1];
  37.             HojaExcel.Visible = Excel.XlSheetVisibility.xlSheetVisible;
  38.  
  39.             // Hacemos esta hoja la visible en pantalla
  40.             // (como seleccionamos la primera esto no es necesario
  41.             // si seleccionamos una diferente a la primera si lo
  42.             // necesitariamos).
  43.             HojaExcel.Activate();
  44.  
  45.             // Crear el encabezado de nuestro informe.
  46.             // La primera línea une las celdas y las convierte un en una sola.            
  47.             HojaExcel.Range["A1:D1"].Merge();
  48.             // La segunda línea Asigna el nombre del encabezado.
  49.             HojaExcel.Range["A1:D1"].Value = "FUNDACION UNIVERCITARIA TECNOLOGICO COMFENALCO";
  50.             // La tercera línea asigna negrita al titulo.
  51.             HojaExcel.Range["A1:D1"].Font.Bold = true;
  52.             // La cuarta línea signa un Size a titulo de 15.
  53.             HojaExcel.Range["A1:D1"].Font.Size = 15;
  54.  
  55.             // Crear el subencabezado de nuestro informe
  56.             HojaExcel.Range["A2:D2"].Merge();
  57.             HojaExcel.Range["A2:D2"].Value = "ENCUESTA DE SATISFACCIÓN AL CLIENTE EXTERNO";
  58.             HojaExcel.Range["A2:D2"].Font.Italic = true;
  59.             HojaExcel.Range["A2:D2"].Font.Size = 13;
  60.  
  61.             Excel.Range objCelda = HojaExcel.Range["A3", Type.Missing];
  62.             objCelda.Value = "ID";
  63.  
  64.             objCelda = HojaExcel.Range["B3", Type.Missing];
  65.             objCelda.Value = "Preguntas";
  66.  
  67.             objCelda = HojaExcel.Range["C3", Type.Missing];
  68.             objCelda.Value = "Opciones";
  69.  
  70.             objCelda = HojaExcel.Range["D3", Type.Missing];
  71.             objCelda.Value = "Numero Votos";
  72.             objCelda.EntireColumn.NumberFormat = "###,###,###.00";
  73.  
  74.             int i = 5;
  75.  
  76.             foreach (DataRow objRow in DS.Tables[0].Rows)
  77.             {
  78.                 // Asignar los valores de los registros a las celdas
  79.                 HojaExcel.Cells[i, "A"] = objRow.ItemArray[0];
  80.                 // ID'
  81.                 HojaExcel.Cells[i, "B"] = objRow.ItemArray[1];
  82.                 // Pregunta'
  83.                 HojaExcel.Cells[i, "C"] = objRow.ItemArray[2];
  84.                 // Opciones'
  85.                 HojaExcel.Cells[i, "D"] = objRow.ItemArray[3];
  86.                 // Numero Votos'
  87.  
  88.                 // Avanzamos una fila
  89.                 i += 1;
  90.             }
  91.  
  92.             // Seleccionar todo el bloque desde A1 hasta D #de filas.
  93.             Excel.Range Rango = HojaExcel.Range["A3:D" + (i - 1).ToString()];
  94.  
  95.             // Selecionado todo el rango especificado
  96.             Rango.Select();
  97.  
  98.             // Ajustamos el ancho de las columnas al ancho máximo del
  99.             // contenido de sus celdas
  100.             Rango.Columns.AutoFit();
  101.  
  102.             // Asignar filtro por columna
  103.             Rango.AutoFilter(1);           
  104.  
  105.             // Crear un total general
  106.             LibroExcel.PrintPreview();
  107.         }


------------------------


Y también, en la parte: HojaExcel.Activate(); se me sigue marcando de verde, pues no se si esta malo o que para ver si me puede ayudar...



Que puedo hacer frente a estos dos casos ?

Última edición por DeivisAndres; 03/10/2012 a las 08:33 Razón: Solucionado...
  #2 (permalink)  
Antiguo 03/10/2012, 08:35
Avatar de DeivisAndres  
Fecha de Ingreso: febrero-2012
Ubicación: Colombia
Mensajes: 305
Antigüedad: 12 años, 2 meses
Puntos: 41
De acuerdo Respuesta: Problema en Generar/Crear un Archivo Excel a partir de una consulta Sql en

Bueno parece que me respondo solo y vaya dio dificultad pero Por fiiiiiiiiiin!!! lo logre... sale excelente... Si alguien mas la necesita... Aqui se los Dejo

Código Javascript:
Ver original
  1. protected void ibExcele_Click(object sender, ImageClickEventArgs e)
  2.         {                        
  3.             // Crear un objeto SqlConnection, y luego pasar la ConnectionString al constructor.            
  4.             SqlConnection Conection = new SqlConnection(CadenaString);
  5.  
  6.             // Utilizar una variable para almacenar la instrucción SQL.
  7.             string SelectString = "SELECT id_pregunta, descripcion, opcion, valor_respuesta, COUNT(id_estudiante) AS Numero_Votos FROM respuestas_encuentas, preguntas WHERE respuestas_encuentas.id_pregunta = preguntas.id GROUP BY id_pregunta, opcion, descripcion, valor_respuesta";                        
  8.  
  9.             SqlDataAdapter Adaptador = new SqlDataAdapter(SelectString, Conection);
  10.  
  11.             DataSet DS = new DataSet();
  12.  
  13.             // Abrir la conexión.
  14.             Conection.Open();
  15.             Adaptador.Fill(DS);
  16.             Conection.Close();
  17.  
  18.             // Creamos un objeto Excel.
  19.             Excel.Application Mi_Excel = default(Excel.Application);
  20.             // Creamos un objeto WorkBook. Para crear el documento Excel.          
  21.             Excel.Workbook LibroExcel = default(Excel.Workbook);
  22.             // Creamos un objeto WorkSheet. Para crear la hoja del documento.
  23.             Excel.Worksheet HojaExcel = default(Excel.Worksheet);            
  24.  
  25.             // Iniciamos una instancia a Excel, y Hacemos visibles para ver como se va creando el reporte,
  26.             // podemos hacerlo visible al final si se desea.
  27.             Mi_Excel = new Excel.Application();
  28.             Mi_Excel.Visible = true;
  29.            
  30.             /* Ahora creamos un nuevo documento y seleccionamos la primera hoja del
  31.              * documento en la cual crearemos nuestro informe.
  32.              */
  33.             // Creamos una instancia del Workbooks de excel.            
  34.             LibroExcel = Mi_Excel.Workbooks.Add();
  35.             // Creamos una instancia de la primera hoja de trabajo de excel            
  36.             HojaExcel = LibroExcel.Worksheets[1];
  37.             HojaExcel.Visible = Excel.XlSheetVisibility.xlSheetVisible;
  38.  
  39.             // Hacemos esta hoja la visible en pantalla
  40.             // (como seleccionamos la primera esto no es necesario
  41.             // si seleccionamos una diferente a la primera si lo
  42.             // necesitariamos).
  43.             HojaExcel.Activate();
  44.  
  45.             // Crear el encabezado de nuestro informe.
  46.             // La primera línea une las celdas y las convierte un en una sola.            
  47.             HojaExcel.Range["A1:E1"].Merge();
  48.             // La segunda línea Asigna el nombre del encabezado.
  49.             HojaExcel.Range["A1:E1"].Value = "------------------------------------------";
  50.             // La tercera línea asigna negrita al titulo.
  51.             HojaExcel.Range["A1:E1"].Font.Bold = true;
  52.             // La cuarta línea signa un Size a titulo de 15.
  53.             HojaExcel.Range["A1:E1"].Font.Size = 15;            
  54.  
  55.             // Crear el subencabezado de nuestro informe
  56.             HojaExcel.Range["A2:E2"].Merge();
  57.             HojaExcel.Range["A2:E2"].Value = "ENCUESTA DE SATISFACCIÓN AL CLIENTE EXTERNO";
  58.             HojaExcel.Range["A2:E2"].Font.Italic = true;
  59.             HojaExcel.Range["A2:E2"].Font.Size = 13;            
  60.  
  61.             Excel.Range objCelda = HojaExcel.Range["A3", Type.Missing];
  62.             objCelda.Value = "ID";
  63.  
  64.             objCelda = HojaExcel.Range["B3", Type.Missing];
  65.             objCelda.Value = "Preguntas";
  66.  
  67.             objCelda = HojaExcel.Range["C3", Type.Missing];
  68.             objCelda.Value = "Opciones";
  69.  
  70.             objCelda = HojaExcel.Range["D3", Type.Missing];
  71.             objCelda.Value = "Valor de la Respuesta";
  72.  
  73.             objCelda = HojaExcel.Range["E3", Type.Missing];
  74.             objCelda.Value = "Numero Votos";
  75.            
  76.             objCelda.EntireColumn.NumberFormat = "###,###,###.00";
  77.  
  78.             int i = 4;
  79.             foreach (DataRow Row in DS.Tables[0].Rows)
  80.             {
  81.                 // Asignar los valores de los registros a las celdas
  82.                 HojaExcel.Cells[i, "A"] = Row.ItemArray[0];
  83.                 // ID
  84.                 HojaExcel.Cells[i, "B"] = Row.ItemArray[1];
  85.                 // Pregunta
  86.                 HojaExcel.Cells[i, "C"] = Row.ItemArray[2];
  87.                 // Opciones
  88.                 HojaExcel.Cells[i, "D"] = Row.ItemArray[3];
  89.                 // Valor de la Respuesta
  90.                 HojaExcel.Cells[i, "E"] = Row.ItemArray[4];
  91.                 // Numero Votos
  92.  
  93.                 // Avanzamos una fila
  94.                 i++;
  95.             }
  96.  
  97.             // Seleccionar todo el bloque desde A1 hasta D #de filas.
  98.             Excel.Range Rango = HojaExcel.Range["A3:E" + (i - 1).ToString()];
  99.  
  100.             // Selecionado todo el rango especificado
  101.             Rango.Select();
  102.  
  103.             // Ajustamos el ancho de las columnas al ancho máximo del
  104.             // contenido de sus celdas
  105.             Rango.Columns.AutoFit();
  106.  
  107.             // Asignar filtro por columna
  108.             Rango.AutoFilter(1);           
  109.  
  110.             // Crear un total general
  111.             //LibroExcel.PrintPreview();
  112.         }

Solucionado

Última edición por DeivisAndres; 03/10/2012 a las 08:42

Etiquetas: excel, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:21.