2014-10-01 72 views
0

我的任務是自動化從docx模板和xml生成文檔的過程。 我發現http://ericwhite.com/blog/2011/03/29/release-of-v2-of-doc-gen-system-xpath-in-content-controls/OpenXml表格控制數據綁定

「如何」的例子,但我遇到了問題,不知道如何處理複雜的表格...... 例如,我的表的部分XML是什麼樣子:

<TBL> 
<ROW> 
    <CLMN_1>0</CLMN_1>  
    <CLMN_2>Date</CLMN_2> 
    <CLMN_3>Customer name</CLMN_3> 
    <CLMN_4>Order No</CLMN_4> 
    <CLMN_5>Account</CLMN_5> 
</ROW> 
<ROW> 
    <CLMN_1>0</CLMN_1> 
    <CLMN_2>Invoice date</CLMN_2> 
    <CLMN_3>Customer Account/IBAN</CLMN_3> 
    <CLMN_4>Explanation</CLMN_4> 
    <CLMN_5>Calling number</CLMN_5> 
    <CLMN_6>Cash out</CLMN_6> 
    <CLMN_7>Cash in</CLMN_7> 
</ROW> 
<ROW> 
    <CLMN_1>1</CLMN_1> 
    <CLMN_2>Current amount</CLMN_2> 
    <CLMN_3>366,47</CLMN_3> 
</ROW> 
<ROW> 
    <CLMN_1>2</CLMN_1> 
    <CLMN_2>05.07.2014.</CLMN_2> 
    <CLMN_3 /> 
    <CLMN_4>2 - Barclays ATM c7241152 Barcelona , Barcelona Street</CLMN_4> 
    <CLMN_5 /> 
    <CLMN_6 /> 
    <CLMN_7 /> 
</ROW> 
</TBL> 

並從該XML我需要創建表(S)的基礎上: 第一個標記(CLMN_1)「描述」行應該是什麼樣子以及該行是什麼(頁眉/頁腳/正文)。 在我的例子,如果clmn_1 ==值爲0 - >該行是頭 每隔clmn_X在指示數據位置在該行(例如clmn_7數據應該是在第6列等

我可以建立這樣的事情根據埃裏克·懷特的例子嗎?

鏈接,圖片和詳細的解釋http://tinypic.com/r/an1w7q/8

THX尋求幫助和建議如何處理這個怪物:)

回答

0

我建議的方法是Eric的有點不同,但你可以使用它來處理OpenDoPE重複,在C#,使用https://www.nuget.org/packages/docx4j.NET/

您需要創建一個錶行中的DOCX和7列,然後結合的細胞1至7到相應CLMN_元件

然後包裹表在重複的內容控制中排。

要這樣設置,您可以使用http://www.opendope.org/downloads/authoring-friendly/setup.exe

轉到創作選項卡,添加您的示例XML文件,然後拖動從任務窗格/降元素到文檔表面。

然後,在運行時注入您的XML,使用C#相當於ContentControlsMergeXML.java