Je veux savoir s'il y a quelque chose que vous ne pouvez pas faire avec SDK qui a été exposé dans l'interface COM?Existe-t-il des fonctionnalités qui ne sont pas exposées dans OpenXML SDK v2?
Répondre
Le SDK OpenXML est une couche de commodité pour le format de fichier OpenXML. En utilisant ce SDK, vous pouvez faire tout ce qui est possible de faire avec le format de fichier, par ex. insérer, modifier et supprimer le contenu, les métadonnées et le formatage.
Contrairement à l'automatisation COM d'Office, vous ne pouvez rien faire qui soit lié à la logique de l'application. Pour vous donner quelques exemples: En utilisant OpenXML SDK, vous ne pouvez pas connaître le numéro de page d'un certain élément dans un document texte car cela nécessiterait une pagination, vous ne pouvez pas recalculer les formules d'une feuille de calcul car cela nécessite le moteur mathématique d'Excel. ou vous ne pouvez pas convertir une diapositive de présentation dans une image, car cela nécessite PowerPoint pour afficher la diapositive.
En ce qui concerne Word, vous pouvez jeter un oeil à la présentation suivante qui montre quand utiliser le SDK OpenXML vs. Bureautique:
+1. Exactement. La façon la plus simple d'y penser (au moins pour moi) est que le SDK ne * rend * * rien, il ajoute ou supprime simplement ce que le rendu sera si vous ouvrez le fichier avec une application cliente (comme Word) qui va interpréter le format et le rendre. Voici un exemple d'un problème sur SO qui illustre un problème de rendu: http://stackoverflow.com/questions/2638046/how-to-split-table-to-new-powerpoint-slide-when-content-flows-off- current-slide-u /. Personnellement, je n'utilise presque jamais le SDK car il ne propose rien que je ne puisse faire seul avec 'System.IO.Packaging'. –
@Otaku: Avez-vous regardé la version 2.0 du SDK qui vous donne un accès entièrement typé au modèle de format de fichier (pour les documents texte)? Cela est pratique, par exemple en combinaison avec Linq, ou lors de la création de documents, car cela ne vous oblige pas à travailler au niveau XML. Mais bien sûr, pas de fonctionnalité supplémentaire, juste un peu plus de commodité sur le dessus ... –
Oui, j'ai regardé à travers 2.0. Je fais quand même la plupart de mon travail dans les formats XML avec Linq-to-XML, donc ça ne m'offre rien. J'ai commencé avec les annotations à la main, donc c'est plus confortable et pratique pour moi. Je ne dis pas que le SDK ne vaut rien, je l'ai beaucoup utilisé au cours des 6 derniers mois, surtout quand j'essaie d'apprendre un nouveau concept et tous les exemples de code et les exemples proviennent du SDK. Je le recommanderais sans hésiter pour les autres si je commence juste avec la programmation Open XML - il est beaucoup plus facile que de lancer vos propres routines pour faire des choses comme établir des relations. –