2009-12-17 4 views
24

Je souhaite appeler une feuille Excel à partir de C# 4.0 (VS 2010 Express Edition).Interopérabilité C# -Excel

Quand je déclare,

Microsoft.Office.Interop.Excel.ApplicationClass excel = 
    new Microsoft.Office.Interop.Excel.ApplicationClass(); 

excel.Visible = true; 

Je reçois erreur

type Interop 'Microsoft.Office.Interop.Excel.ApplicationClass' ne peut pas être intégré. Utilisez l'interface applicable à la place.

Quelle est la soultion?

Répondre

35

Here est un article de blog qui traite de cela. On dirait que vous avez besoin de changer

Microsoft.Office.Interop.Excel.ApplicationClass(); 

à

Microsoft.Office.Interop.Excel.Application(); 
1

Vous devez déclarer la variable comme Microsoft.Office.Interop.Excel.Application, mais instancier comme Microsoft.Office.Interop.Excel.ApplicationClass.

1
Excel.Application = new Excel.ApplicationClass(); 

Notez le leader Excel.Application, pas Excel.ApplicationClass.

Notez également, ceci est directement hors du MSDN page for ApplicationClass.

5

La réponse pour moi était de marquer les types d'interopérabilité comme faux. Voir la question this.

3

Résolu: Problème

Excel.ApplicationClass dérive de l'interface Excel.Application et on peut même instancier Excel en utilisant l'interface Excel.Application. Réécriture ce code comme ci-dessous donne des résultats exactement les mêmes:

Excel.Application xlapp = new Excel.Application(); 
0

Pour 2016 MS Office vous devez utiliser les éléments suivants ne drames

Excel.Application oExcel = new Excel.Application();