Errore apertura file excel da vb 2010

di il
13 risposte

Errore apertura file excel da vb 2010

Salve ragazzi,
sto tentando di creare una semplice procedura che mi consenta di leggere dati da un file excel, ma al momento dell' apertura del file ottengo questo errore:

Impossibile eseguire il cast di oggetti COM di tipo 'Microsoft.Office.Interop.Excel.ApplicationClass' in tipi di interfaccia 'Microsoft.Office.Interop.Excel._Application'. L'operazione non è stata completata perché la chiamata QueryInterface sul componente COM per l'interfaccia con IID '{000208D5-0000-0000-C000-000000000046}' non è riuscita a causa del seguente errore: Impossibile trovare . (Eccezione da HRESULT: 0x80030002 (STG_E_FILENOTFOUND)).

Il codice in questione è il seguente:

Dim excelApp As Microsoft.Office.Interop.Excel.Application
Dim FileExcel As Microsoft.Office.Interop.Excel.Workbook
Dim FoglioExcel As Microsoft.Office.Interop.Excel.Worksheet
Dim RangeExcel As Microsoft.Office.Interop.Excel.Range
Dim codice As Integer
Private Sub btnLeggi_Click(sender As System.Object, e As System.EventArgs) Handles btnLeggi.Click
codice = Convert.ToInt32(txtCerca.Text)
excelApp = New Microsoft.Office.Interop.Excel.Application
FileExcel = excelApp.Workbooks.Open("D:\nomefile.xls")

l' errore ovviamente lo ottengo su quest' ultima riga.
Vorrei precisare che utilizzo Office 2007 Sp3 e Windows 7 Ultimate 64bit, con il controllo account utente al livello più basso.

Dov'è l' errore? c'è qualche componente che devo aggiungere?

Vi prego aiutatemi

13 Risposte

  • Re: Errore apertura file excel da vb 2010

    Ciao alsa,

    alsa ha scritto:


    FileExcel = excelApp.Workbooks.Open("D:\nomefile.xls")
    ...
    (Eccezione da HRESULT: 0x80030002 (STG_E_FILENOTFOUND)).
    Sicuro che il problema non sia solo il percorso sbagliato?
  • Re: Errore apertura file excel da vb 2010

    Il percorso l' ho cambiato e controllato più e più volte ma nulla, ho anche provato ad impostare un "openfiledialog" per la scelta del file ma niente da fare, anche con il controllo openfiledialog, una volta selezionato il file mi restituisce la stessa identica eccezione.

    Però in effetti avevo notato questa cosa, cioè avevo provato a mettere volontariamente un percorso errato e avevo ottenuto lo stesso errore.
    Sento che tutto dipenda da una fesseria, ma quale fesseria?
  • Re: Errore apertura file excel da vb 2010

    Ma se tu fai:
    
            Dim percorso = "D:\nomefile.xls"
            Dim s As String = File.ReadAllText(percorso)
    
    è tutto ok?
  • Re: Errore apertura file excel da vb 2010

    Allora,
    ho impostato un breakpoint su:

    excelApp = New Microsoft.Office.Interop.Excel.Application

    e inserito quelle 2 righe che mi hai indicato, prima del breakpoint.
    Il debug ha raggiunto il breakpoint senza errori, ma provando ad assegnare il contenuto di "s" ad una textbox, la textbox rimane vuota, è normale questo?
  • Re: Errore apertura file excel da vb 2010

    Si quello non dovrebbe essere un problema, questo test serviva per vedere se il file esisteva in quel percorso, se non fosse esistito avrebbe dato una eccezione.

    Ho messo ReadAllText perchèé pensavo che il file fosse in formato xml, ma probabilmente è in binario. Ma questo non ha importanza col tuo problema.

    Cosi su due piedi non saprei cosa dirti, pensavo fosse un errore banale di percorso, dovrei fare qualche prova.
  • Re: Errore apertura file excel da vb 2010

    Nelle "references" del progetto ho inserito solamente:

    Microsoft.Office.Interop.Excel Ver. 12.0.0.0 dalla scheda ".net"

    è corretto? o ho omesso qualcosa per la compatibilità con Office 2007?
  • Re: Errore apertura file excel da vb 2010

    Ciao Alsa,
    con Excel 2007 ho creto un file Prova.xls (formato 97-2003). Ho fatto un reference come dici tu a Microsoft.Office.Interop.Excel (io ho la 11.0.0.0 ma non credo sia importante) e ho scritto questo codice che funziona senza problemi:
    
        Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            Dim excelApp As Microsoft.Office.Interop.Excel.Application
            Dim fileExcel As Microsoft.Office.Interop.Excel.Workbook
    
            excelApp = New Microsoft.Office.Interop.Excel.Application
            fileExcel = excelApp.Workbooks.Open("C:\Temp\Prova.xls")
        End Sub
    
    Quindi stai facendo giusto.

    Ricordo di avere avuto dei problemi con Access e Windows 64 bit quando compilavo con l' opzione TargetCPU= x64, per farlo funzionare dovevo impostare AnyCPU. Perchè le librerie di Access non c'erano per i 64 bit e bisognava caricare una dll a 32 bit, se non hai di meglio da fare prova anche questa.
  • Re: Errore apertura file excel da vb 2010

    Ciao Barba,
    intanto grazie mille per la disponibilità, ho provato quanto mi hai suggerito inserendo prima "anyCPU" e poi "x64" ma il programma non va, restituendomi però un errore diverso anche se molto simile.

    L' errore adesso me lo da su:

    excelApp = New Microsoft.Office.Interop.Excel.Application

    ed è il seguente:

    Impossibile eseguire il cast di oggetti COM di tipo 'System.__ComObject' in tipi di interfaccia 'Microsoft.Office.Interop.Excel.Application'. L'operazione non è stata completata perché la chiamata QueryInterface sul componente COM per l'interfaccia con IID '{000208D5-0000-0000-C000-000000000046}' non è riuscita a causa del seguente errore: Impossibile trovare . (Eccezione da HRESULT: 0x80030002 (STG_E_FILENOTFOUND)).

    Quindi adesso mi genera l' eccezione su oggetti COM di tipo 'System.__ComObject'.

    Ammetto che sono un principiante in vb.net quindi faccio fatica a capire queste eccezioni per il momento.
  • Re: Errore apertura file excel da vb 2010

    Tieni l' opzione su AnyCPU che non sbagli, poi non saprei più che dirti. Riprova tutto con calma.
    EDIT: qui mi sa che mi sono confuso! vedi il post dopo
  • Re: Errore apertura file excel da vb 2010

    Ferma tutto che mi stanno venendo dei dubbi, ricordo del problema con Access e Windows64 ma forse ricordo male i termini della questione. Ho controllato un programma che distribuisco sia su sistemi 32 che 64 e che usa access e ho visto che uso x86 come opzione di compilazione per cui mi stavo confondento. Prova anche tu.
  • Re: Errore apertura file excel da vb 2010

    E' proprio con x86 che mi da la prima eccezione.
    Comunque il fatto che a nessuno mai sia capitata una cosa del genere mi sta portando verso un tentativo piuttosto drastico, sto pensando di installare ex novo Windows e quindi successivamente Visual Studio e Office su una macchina virtuale, spero sia l' intuizione giusta e non un semplice tentativo della disperazione!!!!
  • Re: Errore apertura file excel da vb 2010

    Tornando all' errore però sembra essere una questione di autorizzazioni, anche se ho impostato tutte le autorizzazioni possibili sul file da aprire!!!
  • Re: Errore apertura file excel da vb 2010

    Aggiornamenti sulla questione.
    Ho installato visual studio e office 2003 sp3 su una macchina con windows xp SP3.
    Il programma supera quell' istruzione senza restituire nessuna eccezione ma nelle references non ho aggiunto la versione 11 di microsoft.office.interop.excel.
    Quindi non ci sto capendo più niente!!!
Devi accedere o registrarti per scrivere nel forum
13 risposte