none
Exportar DataGridView a Excel RRS feed

Respuestas

Todas las respuestas

  • Gracias Asier... sabrías una función que use visual basic en vez de c#?

    jueves, 4 de junio de 2015 7:52
  • jueves, 4 de junio de 2015 7:58
  • gracias de nuevo Asier

    falla en la sentencia

    worksheet.Cells(i + 2, columnIndex + 1).Value = ClientesDataGridView.Item(columnIndex, i).Value.ToString

    el error que da es:

    Check to determine if the objects is null before calling the method

    Use the New keyword to create an object instance

    jueves, 4 de junio de 2015 9:35
  • Pero ¿el error te da al compilar o a ejecutar? Es decir ¿falla el código o el error lo genera una regla de análisis de código?

    jueves, 4 de junio de 2015 18:25
  • Gracias por la ayuda. He solucionado el tema. Os paso el procedimiento que incluso exporta la cabecera de la tabla

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Dim fichero As New SaveFileDialog()
            fichero.Filter = "Excel (*.xls)|*.xls"
            If fichero.ShowDialog() = DialogResult.OK Then
                Dim aplicacion As Microsoft.Office.Interop.Excel.Application
                Dim libros_trabajo As Microsoft.Office.Interop.Excel.Workbook
                Dim hoja_trabajo As Microsoft.Office.Interop.Excel.Worksheet
                aplicacion = New Microsoft.Office.Interop.Excel.Application()
                libros_trabajo = aplicacion.Workbooks.Add()
                hoja_trabajo = DirectCast(libros_trabajo.Worksheets.Item(1), Microsoft.Office.Interop.Excel.Worksheet)
                'Recorremos el DataGridView rellenando la hoja de trabajo
                Dim columnsCount As Integer = ClientesDataGridView.Columns.Count
                For i As Integer = 0 To ClientesDataGridView.Rows.Count - 2
                    For j As Integer = 0 To ClientesDataGridView.Columns.Count - 1
                        If i = 0 Then 'pintamos cabecera
                            hoja_trabajo.Cells(i + 1, j + 1) = ClientesDataGridView.Columns(j).HeaderText
                        Else 'pintamos datos
                            hoja_trabajo.Cells(i + 1, j + 1) = ClientesDataGridView.Rows(i).Cells(j).Value.ToString()
                        End If
                    Next
                Next
                libros_trabajo.SaveAs(fichero.FileName, Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookNormal)
                libros_trabajo.Close(True)
                aplicacion.Quit()
            End If
        End Sub

    viernes, 5 de junio de 2015 6:51