Visual Basic Foro

Programación => Visual Basic .NET / C# => Mensaje iniciado por: rivasse en Febrero 22, 2017, 02:25:39 pm

Título: Guardar desde Visual Basic en Excel
Publicado por: rivasse en Febrero 22, 2017, 02:25:39 pm
Necesito guardar desde visual studio 2015 en Excel, la rutina que tengo actualmente me funciona pero no guarda la información como se requiere, es decir, cada vez que presiono el botón guardar debe añadir la información una debajo de la otra, lo que hace el código es simplemente sustituir la celda que se guardó previamente. Copio el código que utilizo para guardar. Espero puedan ayudarme.

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        Dim oExcel As Object
        Dim oBook As Object
        Dim oSheet As Object
        'Iniciar un nuevo libro en Excel
        oExcel = CreateObject("Excel.Application")
        oBook = oExcel.Workbooks.add  '("C:\Users\eriva\Desktop\Ductos.xls") 'Libro donde se exportarán los datos del Proyecto
        'Agregar datos a las celdas a la hoja "Sheet1" del libro "Ductos1"
        oSheet = oBook.WorkSheets(1)

         oSheet.Range("A9").Value = "DUCTOS SUMINISTRO"
            'Esta celda contendrá el nombre del Proyecto
            oSheet. Range("C5:E5"). Merge(True)
            oSheet. Range("A5:B5"). Merge(True)
            oSheet.Range("A5").Value = "Nombre del Proyecto:"
            'Esta celda contendrá el nombre del Proyectista
            oSheet. Range("C6:E6"). Merge(True)
            oSheet. Range("A6:B6"). Merge(True)
            oSheet.Range("A6").Value = "Nombre del Proyectista:"
            'Esta celda contendrá el nombre de la Empresa
            oSheet. Range("C7:E7"). Merge(True)
            oSheet. Range("A7:B7"). Merge(True)
            oSheet.Range("A7").Value = "Nombre de la Empresa:"

            oSheet.Range("A10").Value = "tramo"
            oSheet.Range("B10").Value = "Caudal de Diseño     PCM"
            oSheet.Range("C10").Value = "Velocidad de Diseño     pie/min"
            oSheet.Range("D10").Value = "Factor de Fricción"
            oSheet.Range("E10").Value = "Diámetro Equivalente     in"
            oSheet.Range("F10").Value = "Alto del Ducto     in"
            oSheet.Range("G10").Value = "Ancho del Ducto     in"
            oSheet.Range("H10").Value = "Longitud del Ducto      mts"
            oSheet.Range("I10").Value = "Longitud del Ducto Equivalente     ft"
            oSheet.Range("J10").Value = "Espesor"
            oSheet.Range("K10").Value = "Calibre"
            oSheet.Range("L10").Value = "Kg Ductos"
            oSheet.Range("M10").Value = "M2 Aislante"
            oSheet.Range("N10").Value = "Delpa P    in.c.a."

             ' Esta es la rutina que debo guardar cada vez que presiono el botón

                oSheet.Range("A09").End(XlDirection.xlDown).Offset(1, 0) = Tramo
                oSheet.Range("B09").End(XlDirection.xlDown).Offset(1, 0) = Qdiseño
                oSheet.Range("C09").End(XlDirection.xlDown).Offset(1, 0) = Velocidad2
                oSheet.Range("D09").End(XlDirection.xlDown).Offset(1, 0) = FactorFriccion
                oSheet.Range("E09").End(XlDirection.xlDown).Offset(1, 0) = Diameduct
                oSheet.Range("F09").End(XlDirection.xlDown).Offset(1, 0) = Larcduct
                oSheet.Range("G09").End(XlDirection.xlDown).Offset(1, 0) = Anchduct
                oSheet.Range("H09").End(XlDirection.xlDown).Offset(1, 0) = Longducto
                oSheet.Range("I90").End(XlDirection.xlDown).Offset(1, 0) = (Longducto * 3.28084)
                oSheet.Range("J90").End(XlDirection.xlDown).Offset(1, 0) = espesor
                oSheet.Range("K09").End(XlDirection.xlDown).Offset(1, 0) = calibre
                oSheet.Range("L09").End(XlDirection.xlDown).Offset(1, 0) = (Anchduct + Larcduct) * espesor * Longducto * 11.64
                oSheet.Range("M09").End(XlDirection.xlDown).Offset(1, 0) = (Anchduct + Larcduct + 4) * Longducto * 0.1016
                oSheet.Range("N09").End(XlDirection.xlDown).Offset(1, 0) = ((Longducto * 3.28084 * FactorFriccion) / 100) * 1.05

               ' hacemos visible el documento
                oExcel.Visible = True
                oExcel.UserControl = True
                'Guardaremos el documento en el escritorio con el nombre prueba
                oBook.SaveAs(Environ("UserProfile") & "\desktop\Ductos1.xls")

End Sub
Título: Re:Guardar desde Visual Basic en Excel
Publicado por: el_trocha en Febrero 23, 2017, 02:34:08 am
Porque no vas almacenando en un GridListView cada linea de contenido nuevo.

Cuando ya tengas todo lo que necesitas pasar a EXCEL.

Pulsas el Boton y haces un bucle para recorrer cada una de las lineas del GRID y pasarlas a excel.

Si esto te interesa, dimelo y te adjunto el codigo como lo haria yo.

Un saludo.