簡體   English   中英

使用OpenXml SDK 2.0在Word文檔中插入表格

[英]Using the OpenXml SDK 2.0 to insert tables in a word document

我只是從Visual Studio 2010(C#)中的OpenXML SDK 2.0開始。 在使用COM自動化之前,我已經有了自動化的辦公程序,這很痛苦。

我有一個由我們的圖形設計師制作的模板,該模板將為我的報告奠定基礎。 為了使簡單的事情(純文本項)自動化,我向模板添加了內容控件,並將自定義XML部件綁定到文檔。 內容控件如下:

  • DayCount
  • 替代工作標題
  • 日期
  • 簽名名

復制完模板后,我然后編輯內容控件並使用以下代碼保存文件:

//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創建表的任何代碼示例都只是假定您要將其附加到主文檔部分的末尾。 我想指定表格在模板中的位置,生成表格並將它們放置在模板的指定區域中。 這可能嗎?

任何幫助是極大的贊賞。

有很多OpenXml創建問題。 但是,如果您決定走這條路,答案是一般的,請檢查OpenXml生產力工具 在我的PC上,可以找到“ C:\\ Program Files(x86)\\ Open XML SDK \\ V2.0 \\ tool \\ OpenXmlSdkTool.exe”。 只需在要使用OpenXml創建的MsWord文檔中創建並使用此工具反映文檔的代碼即可。 祝好運!

到目前為止,如果您需要顯示表格數據,我發現最好的東西是位於http://worddocgenerator.codeplex.com/的 Word Document Generator。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM