2012-11-20 83 views
1

我剛開始使用Visual Studio 2010(C#)中的OpenXML SDK 2.0。在使用COM自動化之前,我有自動化的辦公室程序,這很痛苦。使用OpenXml SDK 2.0在word文檔中插入表格

我有一個由我們的圖形設計師製作的模板,它將爲我的報告提供基礎。爲了自動化簡單的事情(純文本項目),我已經將內容控件添加到模板並將自定義XML部分綁定到文檔。內容控件如下:

  • DAYCOUNT
  • AlternateJobTitle
  • 日期
  • SignatureName

製作模板的副本之後,我然後編輯內容控制和保存文件用以下代碼:

//stand up object that reads the Word doc package 
using (WordprocessingDocument doc = WordprocessingDocument.Open(docOutputPath, true)) 
    { 
    //create XML string matching custom XML part 
    string newXml = "<root>" + 
        "<DayCount>42</DayCount>" + 
        "<AlternateJobTitle>Supervisor</AlternateJobTitle>" + 
        "<Date>9/24/2012</Date>" + 
        "<SignatureName>John Doe</SignatureName>" + 
        "</root>"; 

    MainDocumentPart main = doc.MainDocumentPart; 
    main.DeleteParts<CustomXmlPart>(main.CustomXmlParts); 

    //add and write new XML part 
    CustomXmlPart customXml = main.AddCustomXmlPart(CustomXmlPartType.CustomXml); 
    using (StreamWriter ts = new StreamWriter(customXml.GetStream())) 
    { 

     ts.Write(newXml); 
    } 
} 

這一切運作良好。但是,我的文檔不是純粹由標準文本和純文本更新組成的。報告的真正內容在許多表格中,也需要添加到每個報告中。我一直在瘋狂地尋找關於這是如何完成的很好的描述,但真的沒有發現任何東西。有沒有一種方法來描述使用用於明文控件的相同內容控制邏輯來放置表的位置?我發現使用OpenXML創建表的任何代碼示例都假定您想將其附加到主文檔部分的末尾。我想指定表格需要在模板中的位置,生成表格並將它們放置在模板的指定區域中。這可能嗎?

任何幫助,非常感謝。

回答

0

有很多OpenXml創建問題。但是,如果你決定採取這種方式 - 答案是一般的 - 檢查OpenXml生產力工具。在我的電腦上,它可以在「C:\ Program Files文件(x86)\ Open XML SDK \ V2.0 \ tool \ OpenXmlSdkTool.exe」中找到。只需在使用OpenXml創建的MsWord文檔中創建並使用此工具反映文檔的代碼即可。祝你好運!

相關問題