Question

J'ai un modèle au format Word (.docx) et je souhaite remplacer certains espaces réservés dans ce modèle par mes propres données. Savez-vous où je peux trouver les bonnes classes pour ce projet? Ce serait bien pour moi de connaître l'espace de noms. Existe-t-il des classes plus récentes que les classes com pour gérer les documents Word au format docx (xml)? Merci pour toutes vos réponses, j'espère que quelqu'un pourra m'aider à résoudre mon problème.

salue

Sébastien

Était-ce utile?

La solution

Les nouveaux formats de bureau (docx, xlsx, etc.) sont des fichiers zip contenant une collection de fichiers xml. Dans cet esprit, vous avez plusieurs approches.

  1. Vous pouvez utiliser le SDK Open XML situé à l'adresse http://www.microsoft.com/downloads/details.aspx?FamilyId=AD0B72FB-4A1D-4C52-BDB5-7DD7E816D046&displaylang=en

  2. Vous pouvez décompresser le fichier docx, effectuer une recherche, remplacer vos jetons et le sauvegarder à nouveau.

Il existe un site Web à l'adresse openxmldeveloper.org , destiné uniquement à ce genre de chose. Sachez également qu’ils proposent déjà une version bêta 2 du SDK.

Autres conseils

Eric White a abordé exactement ce sujet dans un article de blog détaillant un programme destiné à valider les extraits source incorporés dans des fichiers DocX . Au-delà de cet article, je recommande fortement de lire sa série sur Office Open XML et C # .

J'ai utilisé celui-ci:

IEnumerable test2 = de l'élément dans body.Elements ()              où element.InnerText.Contains ("sdt")              sélectionner un élément;

En passant, en utilisant XML, j'ai trouvé cette solution qui trouve TOUS les nœuds sdt

 NameTable nt = new NameTable();
        XmlNamespaceManager nsManager = new XmlNamespaceManager(nt);
        nsManager.AddNamespace("w", wordmlNamespace);

        XmlDocument xDoc = new XmlDocument();
        xDoc.Load(doc.MainDocumentPart.GetStream());

        XmlNodeList nodeList = xDoc.SelectNodes(@"./w:document/w:body//w:sdt", nsManager);

Cela fonctionne, mais le Kit de développement Open XML Format SDK 2.0 ne me donne-t-il aucune chance de le faire?

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