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 :

[VSTO/C#] Pourquoi ai-je un souci avec Microsoft Excel 9.0 Object Library ?


Sujet :

C#

  1. #1
    Candidat au Club
    Inscrit en
    Janvier 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 5
    Points : 2
    Points
    2
    Par défaut [VSTO/C#] Pourquoi ai-je un souci avec Microsoft Excel 9.0 Object Library ?
    Bonjour a ttes et a ts,

    J'ai un petit souci avec la dll microsoft 'Excel9.olb'.
    Voila, g un projet .Net C#, g ajouté cette librairie comme référence a mon projet puis mon code est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    1    object oMissing = Missing.Value;
    2    appExcel = new Excel.ApplicationClass();
    3    Excel._Workbook wrkbk = appExcel.Workbooks.Add
    (Excel.XlWBATemplate.xlWBATWorksheet);
    4    appExcel.Quit();
    5    appExcel = null;
    L'erreur survient lorsque je crée mon workbook (ligne 3) :
    $"Échec de QueryInterface pour l'interface Excel._Application.
    at Excel.ApplicationClass.get_Workbooks()"
    Quelqu'un aurait-il une idée de mon problème ?
    Merci beaucoup.

    Alex.

  2. #2
    Membre éprouvé Avatar de Yorglaa
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    845
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2004
    Messages : 845
    Points : 931
    Points
    931
    Par défaut
    Salut,
    voici une façon de faire qui, pour moi, fonctionne avec toutes les versions d'excel, et tous les langages...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim x As New Object
    x = CreateObject("excel.application")
    Dim classeur As Object
    Dim feuille As Object
    classeur = x.Workbooks.Open("C:\Machin\fichier.xls", False)
    c'est du VB.Net mais je suppose que ce n'est pas sorcier de traduire ça ne C#
    Il est plus facile de voir les signes avant-coureurs après coup que l'inverse !

    Yorglaa

  3. #3
    Candidat au Club
    Inscrit en
    Janvier 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Merci a vous yorglaa,

    yorglaa:
    j'ai essayé de traduire ton code en C# mais ca na marche pas, mon code est le suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    object excel = HttpContext.Current.Server.CreateObject("excel.application");
    Déja la ca plante, si qlql1 toi ou une autre personne a une solution, suis preneur.
    Voici le message d'erreur :
    "Object reference not set to an instance of an object."
    Effectivement Excel est en anglais (USA) et la langage de mon OS est francais donc penses-tu que cela puisse venir de la ?
    Sinon si tu me dis que le bug est référencé chez microsoft je vais essayer de trouver sinon si tu connais la page c bienvenue.

    merci encore!

    Alex.

  4. #4
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Debugues pas à pas et espionne notamment
    HttpContext.Current.Server qui te renvoie peut être null :
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  5. #5
    Candidat au Club
    Inscrit en
    Janvier 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Hello,
    ok merci pour la piste, j'essaye et je reviens

    bon la piste "HttpContext.Current.Server" n'est pas la bonne solution a mon pb je pense.

    alors deja j'ai réessayé le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Excel.Application appExcel = new Excel.ApplicationClass();
    Excel._Workbook wrkbk = appExcel.Workbooks.Add
    (Excel.XlWBATemplate.xlWBATWorksheet);]
    et deja lorsque j'instancie appExcel, en mode pas a pas g remarqué que 99% des propriétés de mon objet génere une exception de type System.InvalidCastException

    Je ne pense pas que cela soit normal, pouvez-vous confirmer ? Merci

  6. #6
    Candidat au Club
    Inscrit en
    Janvier 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Le langage de mon excel 2000 est anglais us.

    Avec mon code j'obtiens le message d'erreur suivant :
    Échec de QueryInterface pour l'interface Excel._Application. at Excel.ApplicationClass.get_Workbooks()
    puis lorsque j'ajoute la ligne suivante pour spécifier que je passe mon appli en anglais us :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Thread.CurrentThread.CurrentUICulture = new
     System.Globalization.CultureInfo("en-US");
    g une petite variante dans le message d'erreur :
    QueryInterface for interface Excel._Application failed. at Excel.ApplicationClass.get_Workbooks()
    j'avoue que je nage pas mal, si quelqu'un a une piste, je suis preneur

    Alex

    Edit:
    Autant pour moi, je viens de me rendre compte de la stupidité de mon dernier message. le message d'erreur est juste écrit en anglais, forcément. Donc le probleme persiste ...et je patauge tjrs.

  7. #7
    Candidat au Club
    Inscrit en
    Janvier 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Bonjour,

    Apparemment mon probleme provient du fait que mon os est en francais et excel en anglais, toutefois j'ai remarqué que lorsque j'instancie mon objet excel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Microsoft.Office.Interop.Excel.Application excel = new
     Microsoft.Office.Interop.Excel.ApplicationClass();
    toutes les propriétés de mon objet génere une exception: System.InvalidCastException

    Je ne pense pas que cela soit normal, si qlq! peut me confirmer merci bien !

    Alex

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Bonjour, j'ai le même problème. Est ce qu'il a été résolu ?? si oui comment car ca m'intérèsse je patauge sévère.
    Merci

  9. #9
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Citation Envoyé par puman78
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ...Application excel = new ....ApplicationClass();
    Elle ne serait pas là l'incohérence
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Salut
    dans mon code on utilise _Application qui correspond à une interface, mais le problème reste le même si on utilise ApplicationClass

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Re salut, j'ai trouvé une solution qui fonctionne maintenant pour moi.
    Voila le lien :
    http://groups.google.fr/group/micros...57d7293be1a65e

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. soucis avec Microsoft agent
    Par Archimède dans le forum Langage
    Réponses: 0
    Dernier message: 10/01/2011, 16h06
  2. Réponses: 1
    Dernier message: 28/06/2006, 12h32
  3. Réponses: 9
    Dernier message: 30/09/2005, 14h50
  4. Réponses: 4
    Dernier message: 16/02/2003, 12h16

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