none
como exportar datos en excel

    Question

  • Hola espero me puedan ayudar necesito exportar unos datos a un archivo en excel, como puedo hacer solo quiero que el usuario de clic en un boton y exporte todo el contenido que se encuentra en la tabla, he estado trabajando con unos ejemplo de internet pero no todos lo haces desde un datagrid a excel o me exporta la interfaz completa y ningun dato, yo no necesito eso, esperro me puedan explicar. gracias  

    Saturday, January 19, 2008 9:23 PM

All replies

  • Hay varias técnicas para exportar a Excel. Si lo que quieres es solamente exportar los datos, sin darles formato ni hacer nada en especial, lo más sencillo es salvarlos a un archivo CSV (archivo de texto, con los valores separados por comas y con un salto de linea por cada fila que quieras exportar al Excel). Este archivo lo abre el Excel perfectamente, y además es rapidísimo.

     

    Otra opción es instalar el driver de OleDb para Excel, y grabar sobre OleDb como si fuera una base de datos. Hay muchos ejemplos en la Red.

     

    Otra opción, no recomendable, es instalr el Excel en el servidor, agregar en el Proyecto una Referencia al Excel, y usar el modelo de objetos de Excel para enviarle comandos, de forma que vaya metiendo datos en una Hoja y al final salve el archivo. Esta es una solución desaconsejada para un servidor web, ya que las aplicaciones de Office no están previstas para ser utilizadas de esta manera (en un servidor), y además hay que manipular los permisos para que funcionen, pudiendo constituir un riesgo de seguridad. http://msdn2.microsoft.com/es-es/library/wss56bz7(VS.80).aspx

     

    Una cuarta opción, si utilizas archivos xslx (los de Office 2007), es construirlos directamente: por dentro son en realidad un .zip que contiene varios archivos XML, cuya estructura está documentada y por tanto los puedes generar desde un programa en .Net. Para facilitar las cosas, Microsoft distribuye gratuitamente una DLL que sirve para manipular estos ficheros. http://msdn2.microsoft.com/en-us/library/bb226703.aspx

     

    La última opción es adquirir alguna de las múltiples librerías de terceros que se venden para este propósito, por ejemplo, el C1Excel de ComponentOne: http://helpcentral.componentone.com/nethelp/c1xls/ .

     

     

    Sunday, January 20, 2008 8:56 AM
  • Puedes exportar el contenido de in datagrid o gridview a excel:

    http://forums.microsoft.com/msdn-es/ShowPost.aspx?PostID=2702469&SiteID=11

    Salu2
    Monday, January 21, 2008 3:46 PM
    Moderator
  • ESTE CODIGO ESTOY UTILIZANDOLO PARA GENERAR REPORTES DADA LA ESCAZA INFORMACION DE CRYSTAL Y TIEMPO

    TE MANDO ESTE CODIGO QUE ME FUNCION PERFACTAMENTE EN VB2005 Y EXCEL XP

     

    Dim oExcel As Object

    Dim oBook As Object

    Dim oSheet As Object

    Dim creg As Integer

    'Me.MaskedTextBox_fecha_final.Text = "29/02/2008"

    'Me.MaskedTextBox_fecha_inicial.Text = "01/02/2008"

     

    oExcel = CreateObject("Excel.Application")

    oBook = oExcel.Workbooks.Add

    oSheet = oBook.Worksheets(1)

    'oSheet.Range("A1").Value = "Consolidado de Gestion de Cobro Por Concepto"

    'oSheet.range("E1").value = "Intervalo de Fecha Solicitado Inicio " + Me.MaskedTextBox_fecha_inicial.Text + " Final " + Me.MaskedTextBox_fecha_final.Text + ""

    oSheet.Range("A3").Value = "Concepto"

    oSheet.Range("D3").Value = "Usuarios"

    oSheet.Range("E3").Value = "Facturas"

    oSheet.Range("F3").Value = "Mora"

    oSheet.Range("G3").Value = "ArregloFirmado"

    oSheet.Range("H3").Value = "Reconexiones"

    oSheet.Range("I3").Value = "Multas"

    oSheet.Range("J3").Value = "Abonos"

    oSheet.Range("K3").Value = "Colectatotal"

    oSheet.Range("A3:K3").Font.Bold = True

    oSheet.Range("A3:K3").Font.size = 12

    oSheet.range("A3:K3").columns.autofit()

    oBook.SaveAs(sSampleFolder & "Consolidado de Gestion de Cobro por Concepto.xls")

    oSheet = Nothing

    oBook = Nothing

    oExcel.Quit()

    oExcel = Nothing

    GC.Collect()

     

     

    'Establish a connection to the data source del LIBRO DE EXCEL

    Dim sConnectionString As String

    sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _

    "Data Source=" & sSampleFolder & _

    "Consolidado de Gestion de Cobro por Concepto.xls;Extended Properties=Excel 8.0;"

    Dim objConn As New System.Data.OleDb.OleDbConnection(sConnectionString)

    objConn.Open()

    'Add two records to the table.

    Dim objCmd As New System.Data.OleDb.OleDbCommand()

    objCmd.Connection = objConn

     

    'PRIMERO INCIARE PASANDOLE PARAMETROS A LA CONSULTA EN FUNCION DE LOS ID DE GESTION CONTENIDOS EN LA TABLA CONCEPTOS DE GESTION

    dsCONCEPTOSDEGESTION = funcion.ConectarACCESS("Select * from [Conceptos de gestión]")

    Dim crur As Integer = 0

    Dim crconsulta As Integer = 0

    Dim strINSERT As String = ""

    Dim strCONCEPTOSDEGESTION As String = ""

    Dim total_usuario As Integer = 0

    Dim total_facturas As Integer = 0

    Dim total_mora As Decimal = 0

    Dim total_arreglofirmado As Decimal = 0

    Dim total_reconexiones As Decimal = 0

    Dim total_multas As Decimal = 0

    Dim total_abonos As Decimal = 0

    Dim total_colecta As Decimal = 0

    For crur = 0 To dsCONCEPTOSDEGESTION.Tables(0).DefaultView.Count - 1

    Dim usuario As Integer = 0

    Dim facturas As Integer = 0

    Dim mora As Decimal = 0

    Dim arreglofirmado As Decimal = 0

    Dim reconexiones As Decimal = 0

    Dim multas As Decimal = 0

    Dim abonos As Decimal = 0

    Dim colecta As Decimal = 0

    strCONCEPTOSDEGESTION = " SELECT [Conceptos de gestión].concepto, tbbasedatos.idgestion, tbbasedatos.Facturas, tbbasedatos.Mora, tbbasedatos.[Arreglo Firmado], tbbasedatos.Reconexiones, tbbasedatos.Multas, tbbasedatos.Abonos, tbbasedatos.Colectatotal"

    strCONCEPTOSDEGESTION = strCONCEPTOSDEGESTION & " FROM [Conceptos de gestión] INNER JOIN tbbasedatos ON [Conceptos de gestión].idgestión = tbbasedatos.idgestion"

    strCONCEPTOSDEGESTION = strCONCEPTOSDEGESTION & " WHERE (((tbbasedatos.idgestion)=" & dsCONCEPTOSDEGESTION.Tables(0).Rows(crur).Item("idgestión") & ") AND ((tbbasedatos.[fecha operacion]) Between #" & Me.MaskedTextBox_fecha_inicial.Text & "# And #" & Me.MaskedTextBox_fecha_final.Text & "#));"

    DSconsulta = funcion.ConectarACCESS(strCONCEPTOSDEGESTION)

    If DSconsulta.Tables(0).DefaultView.Count > 0 Then

    usuario = DSconsulta.Tables(0).DefaultView.Count

    For crconsulta = 0 To DSconsulta.Tables(0).DefaultView.Count - 1

    'Con esto estoy totalizando LAS COLUMNAS DE CADA CONCEPTO TOTAL PARA LUEGO INTRODUCIRLO EN LA TABLA DE EXCEL

    facturas += DSconsulta.Tables(0).Rows(crconsulta).Item("facturas")

    mora += DSconsulta.Tables(0).Rows(crconsulta).Item("Mora")

    arreglofirmado += DSconsulta.Tables(0).Rows(crconsulta).Item("Arreglo Firmado")

    reconexiones += DSconsulta.Tables(0).Rows(crconsulta).Item("Reconexiones")

    multas += DSconsulta.Tables(0).Rows(crconsulta).Item("Multas")

    abonos += DSconsulta.Tables(0).Rows(crconsulta).Item("Abonos")

    colecta += DSconsulta.Tables(0).Rows(crconsulta).Item("Colectatotal")

    Next

    strINSERT = " Insert into [Hoja1$] (Concepto,Usuarios,Facturas,Mora,ArregloFirmado,Reconexiones,Multas,Abonos,Colectatotal) "

    strINSERT = strINSERT & " values ('" & dsCONCEPTOSDEGESTION.Tables(0).Rows(crur).Item("concepto") & "'," & usuario & "," & facturas & "," & mora & "," & arreglofirmado & "," & reconexiones & "," & multas & "," & abonos & "," & colecta & " ) "

    Try

    objCmd.CommandText = strINSERT

    objCmd.ExecuteNonQuery()

    'Close the connection.

    Catch ex As Exception

    End Try

    End If

    total_usuario += usuario

    total_facturas += facturas

    total_mora += mora

    total_arreglofirmado += arreglofirmado

    total_reconexiones += reconexiones

    total_multas += multas

    total_abonos += abonos

    total_colecta += colecta

    Next

    strINSERT = " Insert into [Hoja1$] (Concepto,Usuarios,Facturas,Mora,ArregloFirmado,Reconexiones,Multas,Abonos,Colectatotal) "

    strINSERT = strINSERT & " values ('SUMA TOTAL '," & total_usuario & "," & total_facturas & "," & total_mora & "," & total_arreglofirmado & "," & total_reconexiones & "," & total_multas & "," & total_abonos & "," & total_colecta & " ) "

    Try

    objCmd.CommandText = strINSERT

    objCmd.ExecuteNonQuery()

    'Close the connection.

    Catch ex As Exception

    End Try

    objConn.Close()

     

    A LA ORDEN, DE PASO SI SABES COMO EXPORTAR GRAFICOS COMO DE PASTEL Y PARETO ME LO PASAS ESTOY PRECISADO CON ESO, BY ELIO.

     

    Monday, March 10, 2008 2:59 PM