IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Excel Automation : erreur "Old format or invalid type library"


Sujet :

C#

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2007
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 27
    Points : 12
    Points
    12
    Par défaut Excel Automation : erreur "Old format or invalid type library"
    Bonjour,

    Avec le tutorial "Pilotage de l'application Office Excel (Excel Automation)" , je voudrais aller lire des données excel pour les enregistrer dans des class de mon programme (C#) puis les enregistrer en XML avec mon programme.

    J'ai téléchargé la solution au complet proposée dans le tutorial et modifié les références pour l'utilisation d'excel 2003 (Microsoft Excel 11.0 Object Library).

    Dans mon programme j'ai inclu les références :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    using Excel;
    using Microsoft.Office.Core;
    using Microsoft.Vbe.Interop;
    ... mais je n'arrive pas à executer le programme, j'ai cette erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    System.Runtime.InteropServices.COMException was unhandled
      Message="Old format or invalid type library. (Exception from HRESULT: 0x80028018 (TYPE_E_INVDATAREAD))"
      Source="Interop.Excel"
      ErrorCode=-2147319784
    Pourtant, j'ai bien vérifié dans le tuto, puis sur google et en cherchant aussi dans ce forum... apparemment pour Excel 2003 (c'est ce qui est installé sur mon PC) ça prend bien Microsoft Excel 11.0 Object Library. Donc la library est correcte... mais l'erreur dit "Old format or invalid type library."... je ne comprends pas ?



    merci

    Marie

  2. #2
    Rédacteur/Modérateur
    Avatar de Skalp
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Points : 2 927
    Points
    2 927
    Par défaut
    Si tu n'as besoin que de lire des données, tu n'avais pas besoin de changer les références.

    Ceci dit, j'ai essayé de faire comme toi, mais de mon côté, il ne compile pas avec using Excel;
    J'ai remplacé les trois lignes using que tu donnes par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    using Microsoft.Office.Interop.Excel;
    Et ça fonctionne. Essaye ça et dis-moi ce que ça donne.

    Sinon, montre-moi ton code, il y a peut-être autre chose qui ne va pas.

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2007
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 27
    Points : 12
    Points
    12
    Par défaut
    Bonjour !

    Merci de ta réponse !!

    Si je fais ce que tu m'as dit, voici ce que ça donne à la compilation :
    pusieurs erreurs comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Error	1	The type or namespace name 'Interop' does not exist in the namespace 'Microsoft.Office' (are you missing an assembly reference?)
    et aussi de ce style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Error	4	The type or namespace name '_Workbook' could not be found (are you missing a using directive or an assembly reference?)
    Il me semble donc que la référence using Microsoft.Office.Interop.Excel; n'est pas reconnue ...


    Bon après réflexion je me disais... pourquoi je m'embête avec tout ça ? C'est sûr que le tuto est super bien et je peux apprendre beaucoup avec ça mais c'est peut-être un peu au-dessus de mon niveau... et je veux juste récupérer des données toutes bêtes... et si j'enregistrais mon fichier excel en csv et que je le lisais en C# comme une lecture de fichier texte, je me ferais un algo pour trier les données et remplir ma liste d'objets avec... ce serait quasiment plus simple comme cela ?

  4. #4
    Rédacteur/Modérateur
    Avatar de Skalp
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Points : 2 927
    Points
    2 927
    Par défaut
    Citation Envoyé par astrolus Voir le message
    Bon après réflexion je me disais... pourquoi je m'embête avec tout ça ? C'est sûr que le tuto est super bien et je peux apprendre beaucoup avec ça mais c'est peut-être un peu au-dessus de mon niveau... et je veux juste récupérer des données toutes bêtes... et si j'enregistrais mon fichier excel en csv et que je le lisais en C# comme une lecture de fichier texte, je me ferais un algo pour trier les données et remplir ma liste d'objets avec... ce serait quasiment plus simple comme cela ?
    Oui, ce serait carrément plus simple ! Si tu n'auras pas trop souvent à faire ce genre de manip (convertir en csv), tu peux faire comme ça. Si tu dois convertir un fichier toutes les 2 minutes, ça peut valoir le coup d'automatiser.

    C'est assez complexe de piloter Excel car se posent souvent des problèmes de versions de librairies. C'est encore obscur pour moi.

Discussions similaires

  1. [Excel][Automation] Formater valeurs numériques
    Par cedji dans le forum MATLAB
    Réponses: 3
    Dernier message: 11/09/2013, 11h20
  2. [AC-2002] [Automation] Erreur Extraction de données depuis un fichier Excel
    Par raph04 dans le forum VBA Access
    Réponses: 30
    Dernier message: 28/04/2010, 14h09
  3. Probleme : Old Format or invalid type library
    Par baloote dans le forum C#
    Réponses: 7
    Dernier message: 13/12/2007, 10h29
  4. [Automation] Erreur lors de l'export vers Excel
    Par steps5ive dans le forum VBA Access
    Réponses: 2
    Dernier message: 12/04/2007, 16h14
  5. Oracle 7 -> Oracle 8 : "Invalid Row Id"
    Par gmartintin dans le forum Bases de données
    Réponses: 4
    Dernier message: 20/10/2004, 11h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo