我正在通過重寫CustomXMLPart文件來更新word文檔。我基本上遵循本教程:http://blogs.msdn.com/b/brian_jones/archive/2009/01/05/taking-advantage-of-bound-content-controls.aspxCustomXMLPart中的換行
private bool _makeDoc()
{
var path = HttpContext.Current.Server.MapPath("~/Classes/Word/template.docx");
using (WordprocessingDocument myDoc = WordprocessingDocument.Open(path, true))
{
//create new XML string
//these values will populate the template word doc
string newXML = "<root>";
newXML += "<name>";
newXML += "name goes here";
newXML += "</name>";
newXML += "<bio>";
newXML += "text" + "more text";
newXML += "</bio>";
newXML += "</root>";
MainDocumentPart mainPart = myDoc.MainDocumentPart;
//delete old xml part
mainPart.DeleteParts<CustomXmlPart>(mainPart.CustomXmlParts);
//add new xml part
CustomXmlPart customXml = mainPart.AddCustomXmlPart(CustomXmlPartType.CustomXml);
using(StreamWriter ts = new StreamWriter(customXml.GetStream()))
{
ts.Write(newXML);
}
myDoc.Close();
}
return true;
}
的問題是,我無法弄清楚如何添加「文本」和「更多的文本」之間的換行符。我試過Environment.NewLine,我試過用<w:p><w:r><w:t>
標籤包裝它。我似乎無法讓它產生一個有效的docx文件。
任何幫助,將不勝感激。
是否有某種工具來調試Word文檔,或者你只想讓瀏覽器標誌無效件? –
@Cory OOXML SDK 2.0附帶了一些內置的驗證工具,您可能發現比在IE中打開XML更有幫助。我會在我的回覆中添加一個鏈接。 –
謝謝布蘭登。我看了一下XML,但是在document.xml中,它只有數據綁定標籤,所以它不是很有幫助。但是,我確實發現了一個更簡單的答案,我會發布它。 –