Domanda

Quando eseguo il seguente codice, ottengo l'eccezione di seguito:

''# NOTE: ExcelApp is a Private main form variable
Dim ReportBooks As Excel.Workbooks = ExcelApp.Workbooks
Dim ReportBook As Excel.Workbook = ReportBooks.Open(localFilename)
Dim ReportSheet As Excel.Worksheet = ReportBook.Sheets("Report")

''# Retreive data from sheet

ReleaseCOM(ReportSheet)
ReportBook.Close(True) ''# Error raised here
ReleaseCOM(ReportBook)
ReleaseCOM(ReportBooks)
ERROR:
COMException was unhandled
The object invoked has disconnected from its clients.
(Exception from HRESULT: 0x80010108 (RPC_E_DISCONNECTED))

. Nota: Tutti i dati sembra essere stato recuperato i correttamente

Ti prego, aiutami diagnosticare e superare questo errore.

È stato utile?

Soluzione

RPC_DISCONNECTED ... il temuto " L'oggetto invocato si è disconnesso dai client. " questione. Ci sono un sacco di cause per questo, sembra di aver coperto il problema variabili globale con Excel.. Si può mettere il primo ReleaseCOM(ReportSheet) sotto ReportBook(Close) ed eseguirlo? Inoltre, controllare questo .

Altri suggerimenti

Non posso dire il motivo per cui sta venendo a mancare basato sul codice si sta mostrando.

Avete considerato il passaggio da Excel Automation utilizza COM Interop a un componente 3rd party?

SpreadsheetGear per NET ti permetterà di caricare le cartelle di lavoro di Excel e ottenere valori / testo formattato ottenere / ricalcolare formule / etc ... senza i problemi connessi con l'interoperabilità COM.

È possibile vedere i campioni dal vivo ASP.NET qui e scaricare la versione di prova gratuita qui se volete provare voi stessi.

Disclaimer: possiedo SpreadsheetGear LLC

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top