Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    12

    [Visual Basic 2010] Excel 2007 e Excel 2003

    Ciao a tutti, ho un piccolo problema con Excel.
    Ho sviluppato un'applicazione in visual basic 2010, che prevede di leggere un file excel. Sul pc dove ho sviluppato ho installato Office 2007.
    Nel progetto, in visual studio, ho inserito il riferimento a Excel (versione 12). Sul mio pc e sui pc dove è installato Office 2007 funziona tutto alla perfezione. Il problema sorge quando faccio girare l'applicazione su un pc in cui è installato Office 2003, in quanto mi da un errore relativo alla versione del riferimento Excel (vorrebbe la versione 11).

    Ora, sul pc dove sviluppo non ho Office 2003 e non vorrei neanche installarlo e ovviamente quando vado ad aggiungere il riferimento a Excel mi compare solo la versione 12 e non la 11;
    Come posso fare per poter far girare l'applicazione sia su pc con Office 2007 che 2003?

    Grazie a tutti

    ciao

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    970
    Ti da questo come errore?
    'Formato vecchio o libreria di tipo non valido. (Eccezione da HRESULT: 0x80028018 (TYPE_E_INVDATAREAD))'
    Sbagliare è umano, perseverare è diabolico.

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    12
    In realtà non so l'errore preciso.
    Io lancio l'exe sul pc con Office 2003, e mi da il classico errore di windows con i due pulsantini "invia a Microsoft" e "Non inviare".
    Sono sicuro che la causa sia la versione visto che ho provato a ricompilare il progetto su un pc dove è installato Office 2003 (aggiungendo quindi la versione 11) e tutto funzionava correttamente sui pc con Office 2003.

    Io sono abbastanza nuovo di visual basic, ho sempre usato java e mi chiedo: non è possibile aggiungere il riferimento a excel, proprio come aggiungo un jar a un progetto java, in modo tale da essere totalmente indipendente dalla versione installata sul pc su cui faccio girare l'exe?

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    970
    Come non sai l'errore??
    Se l'hai sviluppato tu il programma sicuramente saprai come recuperare il tipo di eccezione che ti restituisce.
    Sbagliare è umano, perseverare è diabolico.

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    12
    Eh ma io sul pc con Office 2003 lancio solo l'eseguibile, e non mi parte neanche (mi esce subito l'errore di windows).
    Se porto il codice e lo faccio girare da visual studio, non mi da errore dato che sono costretto a importare la versione 11 del riferimento.

    Immagino che ci sia il modo di vedere l'eccezione dal messaggio di errore che mi esce lanciando l'eseguibile...ma non so come

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    970
    Probabilmente non hai nemmeno messo il codice tra i blocchi Try...Catch.

    codice:
    Try
    ...Tuo codice
     Catch ex As Exception
        MessageBox.Show(ex.Message)
     End Try
    Sbagliare è umano, perseverare è diabolico.

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    12
    In effetti non hai proprio tutti torti

    L'errore che mi viene è

    "Could not load file or assembly 'Microsoft.Office.Interop.Excel' , Version = 12.0.0.0, Culture = neutral; Impossible trovare il file specificato"

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    970
    Scusa allora tu fai un progetto in cui importi una libreria non importa che versione sia o di cosa sia. Complili il tutto ed e normale che sul PC di sviluppo tutto funzioni a dovere perchè tutti i riferimenti sono a posto. Ora devi fare girare l'applicazione su un'altro PC, per cui le soluzioni disponibili sono due: o fai un Setup dell'applicazione e la installi sul PC di destinazione o prendi tutti i file necessari per far girare l'applicazione sull'altro PC e li copi brutalmente.
    Ora sicuramente non hai fatto ne l'uno ne l'altro, giusto?

    La libreria che hai menzionato funziona sia su Office 2003 che su Office 2007, ma non è quello il problema. Il problema che quella libreria sul PC di destinazione non c'è perchè suppongo tu abbia copiato brutalmente l'eseguibile da un PC all'altro.
    Se così non fosse accertati di avere tale libreria o nella directory dell'applicazione o insieme al file o nella GAC.
    Sbagliare è umano, perseverare è diabolico.

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    12
    Mi sfuggiva come creare la dll Microsoft.office.interop.Excel
    (per chi non lo sapesse, dal progetto, proprietà del riferimento e settare su true la proprietà "copia locale": viene creata la dll che mancava).

    Grazie mille

    ciao ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.