Domanda

Ho un modello in formato word (.docx) e voglio sostituire alcuni segnaposto in questo modello con i miei dati, sai dove posso trovare le classi giuste per questo progetto? Sarebbe bello per me conoscere lo spazio dei nomi. Esistono classi più recenti per la gestione dei documenti di Word in formato docx (xml) rispetto alle classi com? Grazie per tutte le tue risposte, spero che qualcuno possa aiutarmi con il mio problema.

saluta

Sebastian

È stato utile?

Soluzione

I nuovi formati di Office (docx, xlsx, ecc.) sono file zip che contengono una raccolta di file xml. Con questo in mente hai un paio di approcci.

  1. È possibile utilizzare l'SDK Open XML disponibile in http://www.microsoft.com/downloads/details.aspx?FamilyId=AD0B72FB-4A1D-4C52-BDB5-7DD7E816D046&displaylang=en

  2. Puoi decomprimere il file docx, fare una ricerca e sostituire i tuoi token e comprimerlo nuovamente.

C'è un sito web all'indirizzo openxmldeveloper.org che è proprio per questo tipo di cose. Inoltre, tieni presente che stanno già distribuendo una versione beta 2 dell'SDK.

Altri suggerimenti

Eric White ha affrontato esattamente questo argomento in articolo del blog che descrive in dettaglio un programma destinato a convalidare i frammenti di sorgente incorporati nei file DocX . Oltre a quell'articolo, consiglio vivamente di leggere le sue serie su Office Open XML e C # .

Ho usato questo:

IEnumerable test2 = dall'elemento in body.Elements ()              dove element.InnerText.Contains (" sdt ")              seleziona elemento;

A proposito usando xml ho trovato questa soluzione che trova TUTTI i nodi 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);

Funziona ma Open XML Format SDK 2.0 non mi dà alcuna possibilità per questo?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top