none
DatagridView a Excel RRS feed

  • Pregunta

  • buen dia 

    si me pudieran decir como hacer para exportar los datos de un datagridview a excel

    primero cargo la hoja de excel al datagridview, puedo ver las mas de 200 filas que contiene, el problema es que quiero modificar una celda de una fila "X" y que me permita guardar el cambio realizado en la hoja de excel en la misma posicion 


    Hector Sosa

    jueves, 17 de marzo de 2016 16:52

Respuestas

  • bueno ya encontre la falla

    se los dejo, este graba sobre un archivo existente, no crea nuevos

    Dim exc As Object
            Dim libr As Object
            Dim osh As Object
            Dim pos As Integer
            Dim f As Integer = 6

            exc = CreateObject("Excel.Application")
            libr = exc.Workbooks.Open("C:\Stencil\Stencil Master.xlsx")
            osh = libr.Worksheets("Top Stencil")
            exc.displayalerts = False
            pos = osh.UsedRange.Row + osh.UsedRange.Rows.Count
           
            For Each row As DataGridViewRow In DataGridView1.Rows

                osh.Range("B" & f).Value = CStr(row.Cells(0).Value)
                osh.Range("C" & f).Value = CStr(row.Cells(1).Value)
                osh.Range("D" & f).Value = CStr(row.Cells(2).Value)
                osh.Range("E" & f).Value = CStr(row.Cells(3).Value)
                osh.Range("F" & f).Value = CStr(row.Cells(4).Value)
                osh.Range("G" & f).Value = CStr(row.Cells(5).Value)
                osh.Range("H" & f).Value = CStr(row.Cells(6).Value)
                osh.Range("I" & f).Value = CStr(row.Cells(7).Value)
                osh.Range("J" & f).Value = CStr(row.Cells(8).Value)
                osh.Range("K" & f).Value = CStr(row.Cells(9).Value)
                osh.Range("L" & f).Value = CStr(row.Cells(10).Value)
                f = f + 1

            Next

            DataGridView1.Rows.Clear()
            DataGridView1.DataSource = Nothing
            libr.saveas("C:\Stencil\Stencil Master.xlsx")

            libr.close()

            libr = Nothing
            exc.quit()
            exc = Nothing


    Hector Sosa

    viernes, 18 de marzo de 2016 20:20

Todas las respuestas

  • bueno ya que nadie respondio esta es la soucion que he hallado pero tiene un pequeño detalle, si me pudieran ayudar con el cof¿digo

    Dim exc As Object
            Dim libr As Object
            Dim osh As Object
            Dim pos As Integer
            Dim f As Integer = 6

            exc = CreateObject("Excel.Application")
            libr = exc.Workbooks.Open("C:\Stencil\Stencil Master.xlsx")
            osh = libr.Worksheets("Top Stencil")
            exc.displayalerts = False
            pos = osh.UsedRange.Row + osh.UsedRange.Rows.Count
            DataGridView1.Rows.Clear()
            DataGridView1.DataSource = Nothing

            For Each row As DataGridViewRow In DataGridView1.Rows

                osh.Range("B" & f).Value = CStr(row.Cells(0).Value)
                osh.Range("C" & f).Value = CStr(row.Cells(1).Value)
                osh.Range("D" & f).Value = CStr(row.Cells(2).Value)
                osh.Range("E" & f).Value = CStr(row.Cells(3).Value)
                osh.Range("F" & f).Value = CStr(row.Cells(4).Value)
                osh.Range("G" & f).Value = CStr(row.Cells(5).Value)
                osh.Range("H" & f).Value = CStr(row.Cells(6).Value)
                osh.Range("I" & f).Value = CStr(row.Cells(7).Value)
                osh.Range("J" & f).Value = CStr(row.Cells(8).Value)
                osh.Range("K" & f).Value = CStr(row.Cells(9).Value)
                osh.Range("L" & f).Value = CStr(row.Cells(10).Value)
                f = f + 1

            Next

            libr.saveas("C:\Stencil\Stencil Master.xlsx")
            libr.close()
            libr = Nothing
            exc.quit()
            exc = Nothing


    Hector Sosa

    viernes, 18 de marzo de 2016 17:42
  • bueno ya encontre la falla

    se los dejo, este graba sobre un archivo existente, no crea nuevos

    Dim exc As Object
            Dim libr As Object
            Dim osh As Object
            Dim pos As Integer
            Dim f As Integer = 6

            exc = CreateObject("Excel.Application")
            libr = exc.Workbooks.Open("C:\Stencil\Stencil Master.xlsx")
            osh = libr.Worksheets("Top Stencil")
            exc.displayalerts = False
            pos = osh.UsedRange.Row + osh.UsedRange.Rows.Count
           
            For Each row As DataGridViewRow In DataGridView1.Rows

                osh.Range("B" & f).Value = CStr(row.Cells(0).Value)
                osh.Range("C" & f).Value = CStr(row.Cells(1).Value)
                osh.Range("D" & f).Value = CStr(row.Cells(2).Value)
                osh.Range("E" & f).Value = CStr(row.Cells(3).Value)
                osh.Range("F" & f).Value = CStr(row.Cells(4).Value)
                osh.Range("G" & f).Value = CStr(row.Cells(5).Value)
                osh.Range("H" & f).Value = CStr(row.Cells(6).Value)
                osh.Range("I" & f).Value = CStr(row.Cells(7).Value)
                osh.Range("J" & f).Value = CStr(row.Cells(8).Value)
                osh.Range("K" & f).Value = CStr(row.Cells(9).Value)
                osh.Range("L" & f).Value = CStr(row.Cells(10).Value)
                f = f + 1

            Next

            DataGridView1.Rows.Clear()
            DataGridView1.DataSource = Nothing
            libr.saveas("C:\Stencil\Stencil Master.xlsx")

            libr.close()

            libr = Nothing
            exc.quit()
            exc = Nothing


    Hector Sosa

    viernes, 18 de marzo de 2016 20:20
  • Hola:

     De dejo un articulo donde menciono como trabajar con archivos de Excel sin necesidad de utilizar Interop, espero puedas revisarlo estoy seguro que te convencerá.

    Trabajar con archivos Excel desde WindowsForms (SpreadSheetLight)


    Saludos desde Monterrey, Nuevo León, México!!!

    viernes, 18 de marzo de 2016 20:40