none
Error al exportar datagridview a Excel RRS feed

  • Pregunta

  • Hola a todos:

    Tengo la necesidad de copiar los datos de un datagridview a Excel. Utilizo Excel 10.

    El problema es que me está dando error en lo resaltado en negrita. "Option Strict On no permite el enlace en tiempo de ejecución.", y no veo como solucionarlo ya que no me defiendo muy bien con los objetos de Excel.

    Imports Microsoft.Office.Interop
    
    
    Module ExportacGrillaExcel
    
        Function RellenarExcel(ByVal Grilla As DataGridView) As Boolean
    
            Dim exApp As New Microsoft.Office.Interop.Excel.Application
    
            Dim exLibro As Microsoft.Office.Interop.Excel.Workbook
    
            Dim exHoja As Microsoft.Office.Interop.Excel.Worksheet
    
            Try
    
                'Añadimos el Libro al programa, y la hoja al libro
    
                exLibro = exApp.Workbooks.Add
    
                exHoja = CType(exLibro.Worksheets.Add(), Excel.Worksheet)
    
                ' ¿Cuantas columnas y cuantas filas?
    
                Dim NCol As Integer = Grilla.ColumnCount
    
                Dim NRow As Integer = Grilla.RowCount
    
                'Aqui recorremos todas las filas, y por cada fila todas las columnas
    
                'y vamos escribiendo.
    
                For i As Integer = 1 To NCol
                    exHoja.Cells.Item(1, i) = Grilla.Columns(i - 1).Name.ToString
                Next
    
                For Fila As Integer = 0 To NRow - 1
    
                    For Col As Integer = 0 To NCol - 1
    
                        exHoja.Cells.Item(Fila + 2, Col + 1) = Grilla.Item(Col, Fila).Value
    
                    Next
    
                Next
    
                'Titulo en negrita, Alineado al centro y que el tamaño de la columna
                'se ajuste al texto
    
                exHoja.Rows.Item(1).Font.Bold = 1
    
                exHoja.Rows.Item(1).HorizontalAlignment = 3
    
                exHoja.Columns.AutoFit()
    
                'Aplicación visible
                exApp.Application.Visible = True
    
                exHoja = Nothing
    
                exLibro = Nothing
    
                exApp = Nothing
    
            Catch ex As Exception
    
                MsgBox(ex.Message, MsgBoxStyle.Critical, "Error al exportar a Excel")
    
                Return False
    
            End Try
    
            Return True
    
        End Function
    
    End Module

    Como se ve la función está en un módulo y después la llamo desde cualquier form de la siguiente forma:

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
         
            'Creamos las variables
            DataGridView1.Columns(0).Name = "Id"
            DataGridView1.Columns(1).Name = "Nombre"
            DataGridView1.Columns(2).Name = "Apellido"
            DataGridView1.Columns(3).Name = "Edad"
    
            RellenarExcel(DataGridView1)
    
    
        End Sub

    Claro si la Option Strict no estuviera marcada como "on", funciona perfectamente, pero eso no puede ser. 

    Bueno, un saludo y gracias a todos.

    Gemma

    viernes, 28 de julio de 2017 13:26

Respuestas

Todas las respuestas