web-dev-qa-db-fra.com

Impossible d'obtenir la référence Microsoft.Office.Interop au travail

J'ai une application C # Winforms et j'essaie simplement d'ouvrir une feuille Excel. Lorsque j'essaie d'ajouter une référence à Microsoft.Office.Interop, la partie "Office" est en rouge et indique "Impossible de résoudre le symbole 'Office'". 

Lorsque je tente de construire, l'erreur est la suivante:

The type or namespace name 'Office' does not exist in the namespace 'Microsoft' 
    (are you missing an Assembly reference?)

J'ai installé Office 2012 et je pense avoir installé les assemblages d'interopérabilité primaires ... mais je ne suis pas positif. 

Je sais que cela devrait être si facile, mais je cherche une réponse à cette question depuis presque une heure et je ne peux tout simplement pas comprendre. Merci d'avance!

13
Ben Strombeck

Vous devez ajouter la référence d'assembly de bibliothèque à votre projet . Elles sont appelées "Assemblages d'interopérabilité primaires".

(En supposant que Visual Studio 2010)

Procédure

  • ouvrir la fenêtre de l'explorateur de solutions 
  • développez votre accordéon de dossier de projet.
  • clic droit sur l'élément de référence
  • sélectionnez "ajouter une référence" dans le menu déroulant
  • sélectionnez l'onglet .NET et recherchez la bibliothèque d'objets appelée Microsoft.Office.Interop.Excel.
  • cliquez sur OK

 add reference window with Excel interop hilighted

La bibliothèque d'objets doit maintenant apparaître dans vos références.

 reference folder accordion with Excel library hilighted

22
Matthew Jacobus

Utiliser le gestionnaire de paquets NuGet dans VS2015

  • Clic droit sur les références dans votre projet Visual Studio
  • Sélectionnez Gérer les paquets NuGet
  • Tapez Microsoft.office dans le champ de recherche
  • Sélectionnez Microsoft.Office.Interop.Excel
  • Cliquez sur Installer
  • Reconstruisez votre solution
19
Simon Hutchison

J'ai eu la même erreur ce matin, avec une application Winforms qui avait toujours été parfaitement construite dans le passé. Tout ce qui avait changé était que notre société avait mis à niveau nos ordinateurs portables d'Excel 2007 à Excel 2013.

Après quelques recherches, je me suis rendu compte que l'application était une application .Net 3.5, et bien que l'explorateur de solutions ait suggéré que toutes les références étaient correctes.

 Solution Explorer

... En fait, ils n'étaient pas. Le signe révélateur était que, lorsque j'ai essayé de rajouter des références dans l'application, elles étaient introuvables.

 Interop

Ce que je devais faire était:

  • mettre à jour l'application de .Net 3.5 à .Net 4.5
  • supprimer les références liées à Office (les 5 premières indiquées dans la première capture d'écran ci-dessus)
  • rajoutez les références (maintenant affichées en version 14 ou 15)

J'ai également dû changer une ligne de code à partir de:

Excel = new Excel.ApplicationClass();

à 

Excel = new Excel.Application();

Une fois cela fait, l'application a été construite sans erreur et a de nouveau fonctionné avec succès.

2
Mike Gledhill

Je pense que vous manquez la référence dll. Ajoutez Microsoft.Office.Interop.Excel.dll à la référence du projet, puis essayez.

1
Abhay Kumar

Moyen plus facile d'ajouter ce package dans VS 2015:

sur le code de ligne à l'aide du paquet, appuyez sur "Alt + Entrée" puis sélectionnez "Trouver cet espace de noms sur nuget.org"  enter image description here

Installez-le et appréciez:)  enter image description here

1
Behzad

Vous devez installer Office 2013 pour nettoyer cette erreur de construction.

0
ybdesire