Usuario
Abrir plantilla de exel editar y obtener datos

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.
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!!!
-
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 RegionPrivate 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 -
-