PDA

View Full Version : [VB.NET] Problema modificare foglio Excel su PC senza Office


jackk87
26-11-2009, 22:51
Buonasera,
nel mio programma ho una funzione che mi legge un file Excel e importa tutto in un DB access. Il programma funziona benissimo quando c'è installato il pacchetto office ho provato su una periferica virtuale e mi tira fuori questo errore:

Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error: 80070005


Nel programma utilizzo la libreria:

Imports Microsoft.Office.Interop


e nella cartella del programma ho le seguenti dll:

Microsoft.Office.Interop.Excel.dll
Microsoft.Vbe.Interop.dll
office.dll


secondo me è qualche dll delle 3 che bisogna registrare non esiste un pacchetto tipo come MDAC per i database?
oppure sulla macchina deve essere obbligatorio installarci il pacchetto office?

Spero che qualcuno mi aiuti grazie a tutti in anticipo :help:

MarcoGG
27-11-2009, 08:59
Non sono sicuro di aver capito perfettamente il tuo problema. Cioè, stai cercando di usare Excel da VB.NET con Interop senza che Excel sia installato ?
Quelle DLL sono giuste, ed è giusto che il "copia localmente" sia True. Ma le librerie Interop non sostituiscono le DLL di Excel. Che ci si stia referenziando ad Excel con Interop ( metodo .NET ), o alla vecchia maniera con COM ( sempre possibile anche in .NET ), il risultato non cambia, Excel deve essere installato. Non si deve far confusione con i files DB di Access, che invece possono essere manipolati da .NET senza che Access sia installato ( in pratica da Win 2000 SP4 in poi, senza che ci sia bisogno di aggiornamenti MDAC ).
Infine, se hai una macchina virtuale e vuoi testare la tua applicazione Interop, Excel andrà installato anche sulla macchina virtuale.

jackk87
27-11-2009, 09:15
Non sono sicuro di aver capito perfettamente il tuo problema. Cioè, stai cercando di usare Excel da VB.NET con Interop senza che Excel sia installato ?
Quelle DLL sono giuste, ed è giusto che il "copia localmente" sia True. Ma le librerie Interop non sostituiscono le DLL di Excel. Che ci si stia referenziando ad Excel con Interop ( metodo .NET ), o alla vecchia maniera con COM ( sempre possibile anche in .NET ), il risultato non cambia, Excel deve essere installato. Non si deve far confusione con i files DB di Access, che invece possono essere manipolati da .NET senza che Access sia installato ( in pratica da Win 2000 SP4 in poi, senza che ci sia bisogno di aggiornamenti MDAC ).
Infine, se hai una macchina virtuale e vuoi testare la tua applicazione Interop, Excel andrà installato anche sulla macchina virtuale.

Ok Marco ho capito perfettamente di questo avevo bisogno di sapere grazie ancora :cool: