none
exportar a excel desde visualbasic.net RRS feed

Respuestas

  • Imports System.Data.SqlClient
    Imports System.Data
    Imports System.Data.Odbc
    Imports Excel
    Imports System.Reflection
    
    'Los imports los declaras arriba, tienes q tener un datagrid con el nombre dgDatosPush el cual contenga datos y un boton btnExcel el siguiente es el codigo:
    
    Private Sub btnExportar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExportar.Click
            Try
                If dgDatosPush.Rows.Count = 0 Then
                    MsgBox("No hay datos") : Exit Sub
                Else
                    Dim ExcelApp As New Excel.Application()
                    Dim TheSheet As Excel.Worksheet
                    ExcelApp.Visible = False
    
                    ' Add a Worksheet to Excel
                    Dim theWorkbook As Excel.Workbook = ExcelApp.Workbooks.Add() 'ExcelApp.Workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet)
    
                    TheSheet = DirectCast(theWorkbook.Worksheets(1), Excel.Worksheet)
                    Dim iColumnas As Integer = 0
                    'For ICol As Integer = 0 To dgDatosPush.Columns.Count - 1
                    '    TheSheet.Cells(1, ICol + 2) = dgDatosPush.Columns(ICol).HeaderText
                    'Next
                    TheSheet.Name = "Atributo_Push"
                    dgDatosPush.MultiSelect = True
                    dgDatosPush.SelectAll()
                    If dgDatosPush.GetCellCount(DataGridViewElementStates.Selected) > 0 Then
                        Clipboard.SetDataObject(dgDatosPush.GetClipboardContent())
                        dgDatosPush.ClearSelection()
                        dgDatosPush.MultiSelect = False
                    End If
                    TheSheet.Columns("P:P").NumberFormat = "@"
                    TheSheet.Range("A2").Select()
                    TheSheet.Paste(Missing.Value, Missing.Value)
                    Clipboard.Clear()
                    With TheSheet.Cells
                        .ShrinkToFit = False
                        .WrapText = False
                        .EntireColumn.AutoFit()
                    End With
                    ExcelApp.Visible = True
    
                    '  Btnexcel.Enabled = False
                End If
    
            Catch x As Exception
                MessageBox.Show(x.Message & "   " & x.ToString, "error : ")
    
            End Try
        End Sub 

     

    miércoles, 19 de octubre de 2011 19:13
  • "thrash2007" preguntó:

    > como puedo exportar de un datagrid en visual estudio.net aplicacion de windows a excel

    Hola:

    Si el control DataGrid o DataGridView se encuentra enlazado a un objeto DataTable, en el siguiente artículo lo explico:

    Cómo exportar a Excel el contenido de un objeto DataTable

    Si no deseas utilizar la biblioteca de objetos de Microsoft Excel, también puedes exportar a Excel los datos del objeto DataTable enlazado con el control DataGrid o DataGridView, utilizando el ISAM de Excel de los motores Microsoft Jet (Excel 2000-2003) o Microsoft ACE (Excel 2007-2010),  de dos maneras:

    1ª) Ejecutando consultas INSERT INTO, que deberás de construir manualmente conforme recorres las filas existentes en el control XXXGrid;

    2ª) De manera automática configurando un objeto OleDbDataAdapter que apunte al libro de Excel, y pasándole a su método Update el objeto DataTable enlazado con el control XXXGrid, tal y como se hace en el método UpdateData que encontrarás en el siguiente artículo:

    Cómo pasar datos entre diferentes orígenes de datos

    Un saludo

     


    NOTA: si esta respuesta te ha resultado útil, recuerda marcarla como satisfactoria.

    Enrique Martínez
      [MS MVP - VB]

    Si usas Visual Basic .NET y deseas ser productivo y feliz, activa la instrucción Option Strict.

    jueves, 20 de octubre de 2011 5:52
    Moderador

Todas las respuestas

  • Imports System.Data.SqlClient
    Imports System.Data
    Imports System.Data.Odbc
    Imports Excel
    Imports System.Reflection
    
    'Los imports los declaras arriba, tienes q tener un datagrid con el nombre dgDatosPush el cual contenga datos y un boton btnExcel el siguiente es el codigo:
    
    Private Sub btnExportar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExportar.Click
            Try
                If dgDatosPush.Rows.Count = 0 Then
                    MsgBox("No hay datos") : Exit Sub
                Else
                    Dim ExcelApp As New Excel.Application()
                    Dim TheSheet As Excel.Worksheet
                    ExcelApp.Visible = False
    
                    ' Add a Worksheet to Excel
                    Dim theWorkbook As Excel.Workbook = ExcelApp.Workbooks.Add() 'ExcelApp.Workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet)
    
                    TheSheet = DirectCast(theWorkbook.Worksheets(1), Excel.Worksheet)
                    Dim iColumnas As Integer = 0
                    'For ICol As Integer = 0 To dgDatosPush.Columns.Count - 1
                    '    TheSheet.Cells(1, ICol + 2) = dgDatosPush.Columns(ICol).HeaderText
                    'Next
                    TheSheet.Name = "Atributo_Push"
                    dgDatosPush.MultiSelect = True
                    dgDatosPush.SelectAll()
                    If dgDatosPush.GetCellCount(DataGridViewElementStates.Selected) > 0 Then
                        Clipboard.SetDataObject(dgDatosPush.GetClipboardContent())
                        dgDatosPush.ClearSelection()
                        dgDatosPush.MultiSelect = False
                    End If
                    TheSheet.Columns("P:P").NumberFormat = "@"
                    TheSheet.Range("A2").Select()
                    TheSheet.Paste(Missing.Value, Missing.Value)
                    Clipboard.Clear()
                    With TheSheet.Cells
                        .ShrinkToFit = False
                        .WrapText = False
                        .EntireColumn.AutoFit()
                    End With
                    ExcelApp.Visible = True
    
                    '  Btnexcel.Enabled = False
                End If
    
            Catch x As Exception
                MessageBox.Show(x.Message & "   " & x.ToString, "error : ")
    
            End Try
        End Sub 

     

    miércoles, 19 de octubre de 2011 19:13
  • "thrash2007" preguntó:

    > como puedo exportar de un datagrid en visual estudio.net aplicacion de windows a excel

    Hola:

    Si el control DataGrid o DataGridView se encuentra enlazado a un objeto DataTable, en el siguiente artículo lo explico:

    Cómo exportar a Excel el contenido de un objeto DataTable

    Si no deseas utilizar la biblioteca de objetos de Microsoft Excel, también puedes exportar a Excel los datos del objeto DataTable enlazado con el control DataGrid o DataGridView, utilizando el ISAM de Excel de los motores Microsoft Jet (Excel 2000-2003) o Microsoft ACE (Excel 2007-2010),  de dos maneras:

    1ª) Ejecutando consultas INSERT INTO, que deberás de construir manualmente conforme recorres las filas existentes en el control XXXGrid;

    2ª) De manera automática configurando un objeto OleDbDataAdapter que apunte al libro de Excel, y pasándole a su método Update el objeto DataTable enlazado con el control XXXGrid, tal y como se hace en el método UpdateData que encontrarás en el siguiente artículo:

    Cómo pasar datos entre diferentes orígenes de datos

    Un saludo

     


    NOTA: si esta respuesta te ha resultado útil, recuerda marcarla como satisfactoria.

    Enrique Martínez
      [MS MVP - VB]

    Si usas Visual Basic .NET y deseas ser productivo y feliz, activa la instrucción Option Strict.

    jueves, 20 de octubre de 2011 5:52
    Moderador