.NET: Si mon .NET automatise Office, le client doit-il avoir installé Office?

StackOverflow https://stackoverflow.com/questions/403118

  •  03-07-2019
  •  | 
  •  

Question

Si je crée un programme qui, dans un petit domaine isolé, utilise l'automatisation Excel:

l'application échouera-t-elle si Excel est nécessaire

ou l'application ne parviendra-t-elle pas à démarrer?

Mettre à jour

Permettez-moi de poser la même question, mais de manière plus détaillée:

L'application sera-t-elle utilisable par

  •   

    99,9% des utilisateurs qui n'utilisent jamais la fonctionnalité nécessitant Excel

  • 0% des utilisateurs, car Excel n'est pas installé.

Laissez-moi poser la même question d'une autre manière:

Une application ne parviendra-t-elle pas à initialiser et fera référence aux dll COM interop?

Laissez-moi poser la même question d'une autre manière:

Une application qui n'utilise pas Excel, mais fait référence à la DLL d'interopérabilité COM, échouera-t-elle

Laissez-moi poser la même question d'une autre manière:

Une application qui n'utilise pas Excel sera-t-elle utilisable si Excel n'est pas installé, si cette application dépend des dlls Office Primary Interop?

Laissez-moi poser la même question d'une autre manière:

Si mon application n'utilise pas Excel, l'utilisateur doit-il avoir installé Excel?

Était-ce utile?

La solution

Le code s'exécutera correctement jusqu'à ce qu'il tente d'appeler les bibliothèques d'automatisation. À ce stade, il générera une exception.

Autres conseils

J'ai une application qui utilise l'automatisation Excel et je peux définitivement affirmer qu'elle échouera au moment de l'exécution, pas au moment du chargement. En fait, nous vérifions si elle est même installée et nous affichons uniquement le " Afficher les données dans Excel " bouton si nous le trouvons (mais les PIA sont déployés sur toutes les installations).

Si vous automatisez Office ... vous devez avoir Office!

Ceci étant dit, la réponse change si vous posez la question: Puis-je créer une feuille de calcul Excel sans avoir Excel sur le client?

Il existe de nombreux contrôles tiers pour le faire; vous pouvez écrire directement dans la spécification XML MS SpreadML ( http: //msdn.microsoft.com/en-us/library/aa140066(office.10).aspx ; ou utilisez des bibliothèques tierces qui le font (comme http://www.carlosag.net/Tools/ExcelXmlWriter/ ).

Je pense que cela échouera au moment de l'exécution, car les assemblys Interop devraient pouvoir être chargés sans les composants COM disponibles sur le système client.

UPDATE: Runtime devrait signifier quand vous en avez besoin!

L'utilisation de COM dans Win32 échouera si nécessaire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top