2012-04-02 62 views

回答

5

我在過去做過很多種方法。這取決於用戶是從Microsoft Word的OUTSIDE還是從INSIDE Microsoft Word啓動操作。

INSIDE Microsoft Word中,你可以使用以下技術之一:模板

  1. 公開賽佔位符和使用VBA或VSTO使用使用複製粘貼&數據源對它們進行迭代。請注意,桌子也是犯罪。這種方法類似於下面的「OUTSIDE」的方法1。缺點是它相對較慢(複製粘貼&)並且Microsoft Word自動更正喜歡在最不需要的時候啓動。
  2. 使用佔位符打開模板並使用VBA或VSTO解析XML表示,然後替換它們。這是更快,但更難寫。特別是因爲XML表示可以在佔位符內包含XML片段(例如'&amp;lt;&amp;lt;PUT_<xxx/>IT_HERE&amp;gt;&amp;gt;'和更復雜的情況)。另外,您需要確保您保留有效的XML文檔並且保持良好的平衡。

OUTSIDE Microsoft Word中(如網絡接口),可以使用以下方法之一:

  1. 商店模板,使用RTF地方(這是更容易比Word自帶的結構處理)。將'&lt;&lt;PLACEHOLDER-FOR-NAME&gt;&gt;'或類似的容易識別的文本放在您想要替換的地方。當用戶請求Word文檔時,獲取RTF,獲取數據,替換佔位符,服務器RTF給用戶。 RTF有一些限制,但有一些優點。優點是:易於創建新模板,並且可以與Microsoft Wordpad和其他Office軟件包配合使用。缺點是表格是一個真正的混亂過程,並不是所有的Microsoft Word結構都是可能的。重複表中的行甚至不推薦。高音量可能是一個問題。
  2. 使用恰好也輸出docx,doc或RTF文檔的報告包。寫報告。一般來說非常適合高音量。如果您希望最終用戶輸入大量附加文本,則不太合適,因爲報告包通常基於頁面而不是基於流動文本工作,有時會插入顯式或隱式分頁符。但是如果你只需要最終用戶輸入一兩句話,那就足夠了。
  3. 胖客戶端。把SQL數據放在某個地方。打開Word。閱讀數據並查看來自INSIDE Microsoft Word的更多技術。

如果您需要填寫從SQL Server(或任何其他數據庫或數據平臺)一個Word文檔,我可以建議的Invantive Composition for filling Word documents from the database免費版(請注意,我一直在參與該產品)。它打開模板並在Word中將它們合併,但更多地針對非開發人員;只需指定模板和數據塊(可能嵌套)併發布即可。開發人員只能在插件中添加一些C#。我認爲這是一個很好的產品,當你有很多模板(超過50),因爲它更容易擴展。

-4

您也可以嘗試使用MS-Excel,因爲它比Word更好地綁定XML。 使Excel產生'Word'風格的輸出也很容易。

+3

這不是幾乎回答了這個問題。 – jorrebor 2014-02-12 15:31:58