none
Abrir plantilla de exel editar y obtener datos RRS feed

  • Pregunta

  • Hola buenos días:

    Estoy tratando de abrir una plantilla de excel para hacer una carga masiva a mi base de datos, si se abre y todo solo que al tratar de leer lo que se coloco en dicho libro de excel me aparece el siguiente error

    Excepción de HRESULT: 0x800A03EC

    y no encuentro como leerlo de regreso, si alguien me puede ayudar le estaré muy agradecido.

    • Cambiado Enrique M. Montejo domingo, 31 de mayo de 2015 5:44 Programación con Microsoft Excel.
    jueves, 28 de mayo de 2015 15:29

Todas las respuestas

  • Hola Edgar:

     Por favor revisa este articulo y usa la librería ahí recomendada.

    Trabajar con archivos Excel desde WindowsForms (SpreadSheetLight)


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

    jueves, 28 de mayo de 2015 16:55
  • Perdón ya encontré la falla  fue que estaba declarando 2 veces el mismo objeto de " Excel.Application" una publica y otra dentro de un sub-proceso, entonces al tratar de acceder desde otro sub-proceso, esta perdía sus valores.

    Muchas gracias de cualquier manera por el apoyo.

    Dejo el código aquí por si a alguien le sirve:

    Imports Microsoft.Office.Core
    Imports Microsoft.Office.Interop

    Public Class FRMCargaChequesMasivo
        Public cuenta As Integer = 1

        Dim excel As New Excel.Application
        Dim libro As Excel.Workbook
    #Region "Funciones"
        Private Sub actuallizar()
            Dim ultimo_saldo As Decimal
            Dim ultimo_saldo_real As Decimal

            Try
                ultimo_saldo = (From saldos In db.conciliaciones_y_cheques Where saldos.id = ((From maximo In db.conciliaciones_y_cheques Where maximo.id_cuenta = cuenta Select maximo.id).ToList.Max) Select saldos.saldo).ToList(0)
                TXTUltimoSaldo.Text = "$ " + FormatNumber(ultimo_saldo, 2, True, False, True)
            Catch ex As Exception
                TXTUltimoSaldo.Text = "$ 0.0"
            End Try
            Try
                ultimo_saldo_real = (From saldos In db.conciliaciones_y_cheques Where saldos.id = ((From maximo In db.conciliaciones_y_cheques Where maximo.id_cuenta = cuenta Select maximo.id).ToList.Max) Select saldos.saldo_real).ToList(0)
                TXTUltimoSaldoReal.Text = "$ " + FormatNumber(ultimo_saldo_real, 2, True, False, True)
            Catch ex As Exception
                TXTUltimoSaldoReal.Text = "$ 0.0"
            End Try
        End Sub

        Public Sub abrir()
            Dim ultimo_cheque As Integer
            Try
                ultimo_cheque = (From saldos In db.conciliaciones_y_cheques Where saldos.id = ((From maximo In db.conciliaciones_y_cheques Where maximo.id_cuenta = cuenta Select maximo.id).ToList.Max) Select saldos.cheque).ToList(0)
                ultimo_cheque = ultimo_cheque + 1
            Catch ex As Exception
                ultimo_cheque = 0
            End Try
            libro = excel.Workbooks.Add("C:\...\Plantilla\Plantilla carga cheques.xltx")
            excel.Visible = True
            excel.Range("D2").Activate()
            excel.ActiveCell.FormulaR1C1 = ultimo_cheque
            excel.Range("A2").Activate()
        End Sub
    #End Region

        Private Sub CargaChequesMasivo_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            actuallizar()
            abrir()

        End Sub

    'Después de editar la plantilla se analiza la información en este sub-proceso del botón finalizar
        Private Sub BTTFinalizar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTTFinalizar.Click
            excel.Range("A2").Activate()
            Dim a = excel.ActiveCell.Value
            MsgBox(a)
        End Sub

    jueves, 28 de mayo de 2015 18:04
  • Hola:

     Me alegro que hayas solucionado tu problema, como recomendación para evitarte problemas de los objetos COM usa OPEN XML la librería que te sugiero lo implemente internamente.


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

    jueves, 28 de mayo de 2015 18:29
  • Muchas gracias por la ayuda
    martes, 2 de junio de 2015 13:49