Comment générer une Table Des Matières à l'aide d'OpenXML SDK 2.0?
À l'aide du SDK, je suis en train de construire des documents Word contenant des rapports. Ces documents doivent avoir la table des matières.
Quelqu'un at-il une solution complète que je puisse suivre afin de comprendre comment le faire?
(J'ai tout lu sur http://openxmldeveloper.org/)
OriginalL'auteur Yeseanul | 2012-03-18
Vous devez vous connecter pour publier un commentaire.
Ont un coup d'oeil à Quatrième et dernier Écran-Cast en Série sur Ajout/mise à Jour de la table des matières dans OpenXML WordprocessingML Documents par Eric Blanc.
Espère que ça aide!
Mise à JOUR:
Selon la FAQ de Forums MSDN je vois que cette fonctionnalité n'est pas pris en charge:
Mise à JOUR 2
Basé sur nos commentaires ci-dessous je pourrais proposer pour utiliser ce scénario:
Tous que l'air un peu compliqué, mais j'espère que ça aide.
J'ai corrigé le lien. Et oui, c'est la même posté sur openxmldeveloper.org... Après quelques recherches, j'ai ajusté ma réponse avec quelques nouveaux détails
Merci pour la réponse. J'ai aussi lu la plupart de MSDN contenu lié, mais je n'ai aucune idée de comment mettre en œuvre cette solution. En outre, personne ne semble avoir fourni un exemple. Après tout, une table des matières est une partie importante d'un document ... j'ai pensé qu'il était couvert par le SDK OpenXML d'une manière ou d'une autre (ou au moins quelqu'un avait trouvé une pratique facile à utiliser la solution).
Un utilisateur de ici le mettre donc clair: "tout Ce OOXML des choses est de m'étonner de plus en plus. Hélas pas toujours dans un sens positif.... Il y a tellement de potentiel, mais très peu de documentation!!! J'aimerais juste entrer le code à l'aide de VS2008 OOXML SDK2, pour laisser la Parole de re-générer (ou générer, ce qui est plus facile???) la table des matières dans mon document. J'essaie, mais ne peux pas " semblent trouver la bonne bits des pièces de l'emballage...."
Pourriez-vous décrire vos besoins? Peut-être (comme il arrive souvent), vous devez pas exactement ce que vous pensez 😉 Permet d'essayer de trouver la solution ensemble...
OriginalL'auteur Dmitry Pavlov
Grâce à Dimitri Pavlov (@DmitryPavlov) pour l'aider.
Je ne veux pas donner une réponse à ma propre question, mais c'est juste pour illustrer les étapes que j'ai prises.
Les conseils pour toute personne intéressée est de regarder les 5 parties de l'écran-cast par Eric Blanc - L'exploration des Tables des Matières Open XML WordprocessingML Documents. Cela a toutes les infos concernant l'ajout et la mise à jour d'une table des matières (am beaucoup plus).
Ma solution a été d'utiliser un Modèle (un document vide qui avaient des styles pour tout ce dont j'avais besoin: en-Tête de 1 à 5, style de table des matières, etc.). Ceci est particulièrement utile comme une solution rapide pour les styles question (le nouveau document, qui a la table des matières, aura un nouveau style.xml créé; ce fichier a quelques données supplémentaires, comme un résultat de la hiérarchie dans la table des matières n'est pas comme prévu – c'est à dire, en-tête 2 est l'enfant d'en-tête 1, en-tête 3 est un enfant d'en-tête 2, etc.).
Donc:
Créer un document Word et ajouter tous les éléments que vous vous attendez à être ajouté plus tard par programme (par exemple, en-Tête de 1 À 5, la Table des Matières, etc.). Supprimer tout le contenu et enregistrer le document (la raison pour cela est de créer des styles pour tous les éléments nécessaires).
Personnellement, j'ai ajouté le modèle (le fichier créé à l'étape #1) en tant que ressource dans mon projet.
Dans votre code, de créer une nouvelle copie du modèle (ce qui sera le fichier que vous allez travailler sur). J'ai utilisé:
Vider toutes les données du présent document.
Ajouter les fichiers source à partir de l'écran-cast 2, 3 ou 4 de votre projet (veuillez voir l'écran-cast 3) - à la fin de ces postes, vous trouverez un lien pour télécharger TocAdder.zip. Ou tout simplement ajouter une référence à TocAdder.dll.
Insérer la table des matières. Juste un exemple:
Remplacer les styles dans le document nouvellement créé avec ceux du modèle. Vous pouvez utiliser cette ressource à partir de MSDN: Remplacer les Styles de Pièces dans les Documents Word 2010 en Utilisant le SDK Open XML 2.0. Encore une fois, un exemple:
Éventuellement utiliser l'une des méthodes décrites à l'écran-cast 3, 4 ou 5 afin de contourner le problème avec la boîte de dialogue modale ce Mot met en place.
Espère que ce sera utile à quelqu'un.
OriginalL'auteur Yeseanul
Si vous avez un champ de table, cela va l'amener à être mis à jour lorsque le document est ouvert dans Word (le corps est une référence dans le corps du document):
OriginalL'auteur Len White