2013-08-04 58 views
5

我想生成一個word文檔(.docx)文件,它基於一個模板可以是一個單詞模板或者文本可以存儲在代碼中。如何在模板中使用現有文本生成word文檔docx,但通過asp.net web表單填寫值?

現在生成的文檔應該基於用戶使用帶有文本框的ASP.net Web窗體提供的輸入來輸入值。

這些值將被帶入並放置在單詞模板中的佔位符位置。

  1. 如何在ASP.net Web項目中使用單詞模板?
  2. 如何從ASP.net webform中取值並將其傳遞給單詞模板,用文本填充佔位符,然後生成單詞文檔?

我已經看到一些例子,其中要生成的文本被創建爲HTML,然後導出的文件被賦予filetype msword以保存爲word文件。但在這種情況下,我想知道,我如何給頁面編號和其他頁眉或頁腳值生成的文件。

因此,如果我可以使用單詞模板,只需填寫用戶想要的值然後生成最終文檔,那就太棒了。

在Visual Studio 2012中有什麼新的做法嗎?我正在嘗試使用C#來做到這一點。

回答

7

你必須創建Word文檔的幾個選項 -

  1. 使用Word自動化 - 這是直接使用Word女士。如果您在服務器上運行,建議不要這麼做 - 速度很慢,並且存在可擴展性和其他問題。

  2. 使用OpenXML - 這是Microsoft的SDK與Office 2007+文件格式一起使用。有幾種方法可以用OpenXML來實現您的目標 - 就像使用書籤或內容控件一樣。看看這太問題 - How to replace content in template docx document and Open XML SDK 2.0 (Aug 09)?或這一個 - How to create *.docx files from a template in C#或者google一下(雖然並不難,整個解決方案更是的幾行代碼,並確實需要一點理解)

  3. 使用第三方工具或控制 - 我不是很熟悉它們。

3

您可以通過創建一個Word文檔(包括徽標,頁眉,頁腳等),把佔位符創建模板,並將其保存爲「Word 2003中的XML」的文件。

接下來,您可以閱讀該模板。XML作爲一個文本文件,用值替換佔位符,並響應整個字符串作爲內容類型「應用程序/ msword」

佔位符可以{MY_PLACEHOLDER1}

創建模板之前,你必須先停用(在Word中)都與Ortography有關,因爲「bad oortography」突出顯示是作爲xml文檔的一部分存儲的,而{MY_PLACEHOLDER1}可以作爲MY_PLACEHOLDER1存儲(「{」和「}」自己的單詞XML標籤)

問候,

相關問題