none
label a excel RRS feed

  • Pregunta

  • Hola tengo un importador de excel en vb.net, donde exporto los datos de la grilla, el encabezado y las filas, tengo un panel aparte donde calcula los totales que contiene la grilla, y estos los muestra a través de un label, quisiera saber como lo puedo hacer para que ese label se exporte en el archivo excel.
    jueves, 14 de diciembre de 2017 19:30

Respuestas

  • Ya no me calenté la cabeza jajaj, así que lo que hice, fue exportarlo a CSV me salio mas fácil y logre lo que quería, te agradezco de todas maneras tu tiempo y la intensión de ayudar muchas gracias...
    • Propuesto como respuesta Brayan De La Cruz viernes, 15 de diciembre de 2017 15:30
    • Marcado como respuesta DaviBar viernes, 15 de diciembre de 2017 15:45
    viernes, 15 de diciembre de 2017 15:23

Todas las respuestas

  • Si colocas el código para importar que tienes, se puede analizar la mejor manera de exportar ese dato, al caso no debe variar de como cargas el resto dandole coordenadas de la celda excel de destino

    Saludos

    jueves, 14 de diciembre de 2017 20:53
  • Function GridAExcel(ByVal migrid As DataGridView)
            LblInfo.Tag = LblInfo.Text
            LblInfo.Text = "Exportando Archivo..."
            System.Windows.Forms.Application.DoEvents()
            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 = exLibro.Worksheets.Add()
                exHoja.Name = "PLANILLA"
                ' ¿Cuantas columnas y cuantas filas?
                Dim NCol As Integer = migrid.ColumnCount
                Dim NRow As Integer = migrid.RowCount
                Dim footer As Integer = migrid.RowCount
                'Aqui recorremos todas las filas, y por cada fila todas las columnas y vamos escribiendo.
                For Each col As DataGridViewColumn In migrid.Columns
                    If col.Visible = True Then
                        Dim k = col.DisplayIndex
                        exHoja.Cells.Item(1, k + 1) = migrid.Columns(col.Index).HeaderText.ToUpper
                    End If
                Next
    
                For Each row As DataGridViewRow In migrid.Rows
                    For Col As Integer = 0 To NCol - 1
                        If migrid.Columns(Col).Visible Then
                            Dim k As Integer = migrid.Columns(Col).DisplayIndex
                            exHoja.Cells.Item(row.Index + 2, k + 1) = migrid.Rows(row.Index).Cells(Col).Value
                        End If
                    Next
                Next
    
    
                exHoja.Rows.Item(1).Font.Bold = 1
                exHoja.Rows.Item(1).HorizontalAlignment = 3
                SaveFileDialog1.DefaultExt = "xlsx"
                SaveFileDialog1.FileName = "REAJUSTE" & " - " & ComboConcepto.Text & " - " & Now.ToString.Replace(":", "_")
                SaveFileDialog1.Filter = "Excel files (*.xlsx)|*.xlsx"
                Dim result As Integer = SaveFileDialog1.ShowDialog()
    
                If result = Windows.Forms.DialogResult.OK Then
                    exLibro.SaveAs(SaveFileDialog1.FileName, 51)
                    exLibro.Close()
                    exApp.Quit()
                    KillExcel(exApp.Hwnd)
                    Dim process As New Process
                    process = process.Start(SaveFileDialog1.FileName)
                    OpenFileDialog1.InitialDirectory = SaveFileDialog1.InitialDirectory = Path.GetDirectoryName(SaveFileDialog1.FileName)
                Else
                    exApp.Quit()
                    KillExcel(exApp.Hwnd)
                End If
            Catch ex As Exception
                MsgBox(ex.Message, MsgBoxStyle.Critical, "Error al exportar a Excel")
            Finally
                LblInfo.Text = LblInfo.Tag
                Try
                    GC.Collect()
                    GC.WaitForPendingFinalizers()
                    System.Runtime.InteropServices.Marshal.FinalReleaseComObject(exLibro)
                    System.Runtime.InteropServices.Marshal.FinalReleaseComObject(exHoja)
                    System.Runtime.InteropServices.Marshal.FinalReleaseComObject(exApp)
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(exLibro)
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(exHoja)
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(exApp)
                Catch ex As Exception
                End Try
            End Try
        End Function

    te dejo el codigo, me importa la grilla pero como mencione el label que calcula el total de cada grilla no se como importarlo los nombres de mis label son;

    lbMontoTotal

    lbVariacion

    lbReajuste

    Gracias por la ayuda!!

    viernes, 15 de diciembre de 2017 12:08
  • Perfecto ahora, por favor, sube una imagen del excel como debería quedar con los resultados de los label ya puestos en la hoja así tendremos una mejor vista.

     Saludos

    viernes, 15 de diciembre de 2017 13:38
  • Ya no me calenté la cabeza jajaj, así que lo que hice, fue exportarlo a CSV me salio mas fácil y logre lo que quería, te agradezco de todas maneras tu tiempo y la intensión de ayudar muchas gracias...
    • Propuesto como respuesta Brayan De La Cruz viernes, 15 de diciembre de 2017 15:30
    • Marcado como respuesta DaviBar viernes, 15 de diciembre de 2017 15:45
    viernes, 15 de diciembre de 2017 15:23
  • Ok Davi, si lo has resuelto, feliz por ti

    Saludos


    • Editado Marcelo PF viernes, 15 de diciembre de 2017 18:02
    viernes, 15 de diciembre de 2017 18:02