Voglio creare un documento Word 2007 senza utilizzare il modello a oggetti. Quindi preferirei crearlo usando il formato aperto xml. Finora sono stato in grado di creare il documento. Ora voglio aggiungere un controllo contenuto e mapparlo a xml. Qualcuno mi può guidare per lo stesso ???Come aggiungere il controllo del contenuto in un documento Word 2007 utilizzando OpenXML
risposta
Anoop,
Lei ha detto che si è in grado di creat il documento con OpenXmlSdk. Con questa ipotesi, è possibile utilizzare il seguente codice per creare il controllo del contenuto da aggiungere all'elemento Wordprocessing.Body del documento.
//praragraph to be added to the rich text content control
Run run = new Run(new Text("Insert any text Here") { Space = StaticTextConstants.Preserve });
Paragraph paragraph = new Paragraph(run);
SdtProperties sdtPr = new SdtProperties(
new Alias { Val = "MyContentCotrol" },
new Tag { Val = "_myContentControl" });
SdtContentBlock sdtCBlock = new SdtContentBlock(paragraph);
SdtBlock sdtBlock = new SdtBlock(sdtPr, sdtCBlock);
//add this content control to the body of the word document
WordprocessingDocument wDoc = WordprocessingDocument.Open(path, true); //path is where your word 2007 file is
Body mBody = wDoc.MainDocumentPart.Document.Body;
mBody.AppendChild(sdtBlock);
wDoc.MainDocumentPart.Document.Save();
wDoc.Dispose();
Spero che questo risponda a una parte della tua domanda. Non ho capito cosa stai dicendo con "Mappalo in XML". Intendevi dire che vuoi creare CustomXmlBlock e aggiungere il ContentControl ad esso?
Dai un'occhiata a Word Content Control Toolkit su www.codeplex.com.
Ecco una breve spiegazione su come eseguire ciò che si sta tentando.
È necessario accedere alla scheda sviluppatore sulla barra multifunzione di Word. Per farlo funzionare, fai clic su Office (Round thingy) nell'angolo in alto a sinistra e seleziona Opzioni di Word nella parte inferiore del menu. Nella prima pagina delle opzioni c'è una casella di controllo per mostrare la barra degli strumenti dello sviluppatore.
Utilizzare la barra degli strumenti di sviluppo per aggiungere i controlli del contenuto che si desidera sulla pagina. Fare clic sul pulsante Proprietà nella sezione Controlli contenuti della barra di sviluppo e impostare il nome e le proprietà dei tag (io rimango a denominare i campi nome e tag con lo stesso nome).
Salvare e chiudere il documento word.
Aprire il toolkit di controllo del contenuto e quindi aprire il documento con il toolkit. Usa il dolore della mano sinistra per creare alcuni xml personalizzati da collegare ai tuoi controlli.
Ora utilizzare la vista di associazione per trascinare e rilasciare i mapping tra il proprio xml personalizzato e i controlli personalizzati visualizzati nel pannello destro del toolkit.
È possibile utilizzare openxml sdk 1.0 o 2.0 (sempre in ctp) per aprire il documento word nel codice e accedere al file xml personalizzato contenuto come parte del documento word.
Se si desidera avere un'idea di come il documento di Word appare come xml. Fai una copia del tuo documento word e poi rinominalo per dire "a.zip". Fare doppio clic sul file zip e quindi navigare nella struttura delle cartelle. Il contenuto principale del documento word è contenuto nella cartella word in un file chiamato "document.xml". La parte personalizzata xml del documento è contenuta nella cartella customXml e generalmente si trova nel file "item1.xml".
Spero che questa breve spiegazione ti renda attivo e funzionante.
Desidero aggiungere il controllo del contenuto a livello di codice utilizzando open xml sdk .... – Anoop
Grazie per la risposta !! Anche se ho già un bell'articolo in MSDN che spiega anche la mappatura XML ... http://msdn.microsoft.com/en-us/library/dd469465.aspx – Anoop
In OpenXML SDK 2, Alias è ora SdtAlias. –