2010-04-08 6 views
1

a essayé de la recherche sur cela, mais parfois je semblent manquer des compétences googler ...En utilisant VSTO dans une application autonome pour accéder à des feuilles Excel

Je veux développer un (autonome) WinForms applications qui utilise l'automatisation pour communiquant avec Excel. Je sais déjà comment utiliser l'Interop, mais je pensais que les outils VSTO fourniraient une façon plus confortable ou plus sophistiquée de le faire.

Mon idée était:

  • Je pourrais construire un nouveau projet autonome avec les références Excel préparées.
  • Je pourrais utiliser un modèle d'objet plus sophistiqué fourni par VSTO pour communiquer avec Excel.

Cependant, mes conclusions à ce jour me font penser que:

  • VSTO ne peut être utilisé pour construire les compléments/feuilles de calcul Excel, ne pas construire application autonome.
  • Il n'y a pas de modèle d'objet plus sophistiqué que celui fourni par Interop (qui a des choses aussi moche qu'un bug de locale, une méthode "Open (Missing, Missing, Missing ...)" et ainsi de suite. J'ai trouvé une feuille de travail et une classe de classeur dans l'espace de noms VSTO, mais autant que je sache, elles se réfèrent toujours aux classes CS pour les feuilles et le classeur que vous implémentez lors de la définition d'un complément Excel ou d'une extension de classeur. être utilisé comme emballages confortables dans une application autonome.

Quelqu'un peut-il confirmer ces déclarations ou me corriger là où je me trompe?

En outre, si devrait être un moyen d'utiliser VSTO et sa classe "classeur" pour charger un classeur Excel à partir d'une application autonome, puis comment dois-je faire?

Thx, chiccodoro

Répondre

2

VSTO est pour le développement de bureau Add-ons, des applications non séparées.

Pour automatiser Office à partir d'une application externe, COM Interop est toujours le moyen de le faire. Si vous pouvez utiliser .NET 4.0 (et Visual Studio 2010) alors vous avez accès à Named and Optional Arguments, ce qui rend Interop une chose beaucoup plus agréable.

Par exemple, dans .NET 3.5 vous écrire ceci:

Workbooks.Open(thisFileName, 
     Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
     Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
     Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
     Type.Missing, Type.Missing) 

et .NET 4.0 vous pouvez écrire ceci:

Workbooks.Open(thisFileName) 

Je ne crois pas que vous pouvez utiliser des objets à partir l'espace de noms VSTO dans une application externe.

+0

Très clarification et réponse utile, merci – chiccodoro

0

En attendant, j'ai appris à connaître un autre ensemble d'outils pour rendre la programmation Office plus confortable: VSTO Power Tools. Bien que construites par l'équipe VSTO, elles peuvent également être utilisées pour des applications autonomes. Ils contiennent des méthodes d'extension qui permettent le

Workbooks.Open(thisFileName) 

Encore ils ne résolvent pas plusieurs problèmes que j'ai eu jusqu'ici, par exemple.

  • Le locale bug
  • Une bonne libération de tous les objets COM, dès que leurs références tombent hors de portée.
Questions connexes