翻譯|使用教程|編輯:吉煒煒|2025-04-27 10:11:00.530|閱讀 140 次
概述:在企業應用中,無論是生成報告、合同還是個性化信函,程序化創建 Word 文檔都是常見需求。Spire.Doc for .NET 提供了無需依賴 Microsoft Office 的 C# Word 文檔處理解決方案。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
在企業應用中,無論是生成報告、合同還是個性化信函,程序化創建 Word 文檔都是常見需求。E-iceblue旗下Spire系列產品是國產文檔處理領域的優秀產品,支持國產化,幫助企業高效構建文檔處理的應用程序。Spire.Doc for .NET 提供了無需依賴 Microsoft Office 的 C# Word 文檔處理解決方案。
本文將探討兩種基于模板生成文檔的有效方法:
Spire.Doc for .NET 是一款專業的 Word 文檔處理 API,可幫助開發者實現多樣化的文檔操作功能。主要特性包括:
該庫特別適用于需要保證一致性和效率的企業級文檔自動化生成場景。
開始前,請從我們的官方網站下載 Spire.Doc for .NET,或通過 NuGet 包管理器使用以下命令進行安裝:
PM> Install-Package Spire.Doc
Spire.Doc 庫中的 Document.Replace 方法可用于查找替換 Word 文檔中的特定文本,實現基于模板的動態文檔生成。
通過替換文本生成Word文檔的步驟如下:
using Spire.Doc; using Spire.Doc.Documents; using Spire.Doc.Fields; using System.Drawing; namespace CreateWordByReplacingPlaceholders { class Program { static void Main(string[] args) { // 初始化一個新的 Document 對象 Document document = new Document(); // 加載模板 Word 文件 document.LoadFromFile("C:\\Users\\Administrator\\Desktop\\template.docx"); // 字典用于保存占位符及其替換內容 Dictionary replaceDict = new Dictionary { { "#name#", "張三" }, { "#gender#", "男" }, { "#birthdate#", "1990年3月20日" }, { "#address#", "金盆嶺街道" }, { "#city#", "長沙" }, { "#province#", "湖南" }, { "#postal#", "410000" }, { "#country#", "中國" } }; // 用相應的值替換文檔中的占位符 foreach (KeyValuePair kvp in replaceDict) { document.Replace(kvp.Key, kvp.Value, true, true); } // 圖像文件的路徑 String imagePath = "C:\\Users\\Administrator\\Desktop\\portrait.png"; // 用圖像替換照片占位符 ReplaceTextWithImage(document, "#photo#", imagePath); // 保存修改后的文檔 document.SaveToFile("ReplacePlaceholders.docx", FileFormat.Docx); // 釋放資源 document.Dispose(); } // 方法用于用圖像替換文檔中的占位符 static void ReplaceTextWithImage(Document document, String stringToReplace, String imagePath) { // 從指定路徑加載圖像 Image image = Image.FromFile(imagePath); DocPicture pic = new DocPicture(document); pic.LoadImage(image); // 在文檔中查找占位符 TextSelection selection = document.FindString(stringToReplace, false, true); // 獲取找到的文本范圍 TextRange range = selection.GetAsOneRange(); int index = range.OwnerParagraph.ChildObjects.IndexOf(range); // 插入圖像并移除占位符文本 range.OwnerParagraph.ChildObjects.Insert(index, pic); range.OwnerParagraph.ChildObjects.Remove(range); } } }
Spire.Doc中的 BookmarksNavigator 類專門用于管理 Word 文檔中的書簽,該類提供了定位書簽和替換書簽內容的方法。
通過替換書簽內容生成Word文檔的步驟如下:
using Spire.Doc; using Spire.Doc.Documents; namespace CreateWordByReplacingBookmarkContent { class Program { static void Main(string[] args) { // 初始化一個 Document 對象并加載模板 Document document = new Document(); document.LoadFromFile("C:\\Users\\Administrator\\Desktop\\template.docx"); // 定義書簽名稱及其替換值 Dictionary replaceDict = new Dictionary { { "name", "Tech Innovations Inc." }, { "year", "2015" }, { "headquarter", "美國,紐約" }, { "history", "Tech Innovations Inc. 由一群工程師和企業家創立,他們的愿景是徹底改變技術行業。" + "公司最初專注于軟件開發,后來將業務范圍擴展到人工智能和云計算解決方案。" } }; // 創建一個 BookmarksNavigator 來管理文檔中的書簽 BookmarksNavigator bookmarkNavigator = new BookmarksNavigator(document); // 用相應的值替換每個書簽的內容 foreach (KeyValuePair kvp in replaceDict) { bookmarkNavigator.MoveToBookmark(kvp.Key); // 導航到書簽 bookmarkNavigator.ReplaceBookmarkContent(kvp.Value, true); // 替換內容 } // 保存修改后的文檔 document.SaveToFile("ReplaceBookmarkContent.docx", FileFormat.Docx2013); // 釋放資源 document.Dispose(); } } }
兩種方法都提供了有效的從模板生成Word文檔的方式,但有重要差異:
1.文本替換法:
2.書簽替換法:
此外,Spire.Doc for .NET 還支持郵件合并功能,這為從模板動態生成文檔提供了另一種強大的方式。該功能特別適用于批量創建個性化文檔,例如套用信函或報告,這些文檔的數據通常來自數據庫或其他結構化數據源。
————————————————————————————————————————
關于慧都科技:
慧都科技是一家行業數字化解決方案公司,長期專注于軟件、油氣與制造行業。公司基于深入的業務理解與管理洞察,以系統化的業務建模驅動技術落地,幫助企業實現智能化運營與長期競爭優勢。在軟件工程領域,我們提供開發控件、研發管理、代碼開發、部署運維等軟件開發全鏈路所需的產品,提供正版授權采購、技術選型、個性化維保等服務,幫助客戶實現技術合規、降本增效與風險可控。慧都科技E-iceblue的官方授權代理商,提供E-iceblue系列產品免費試用,咨詢,正版銷售等于一體的專業化服務。E-iceblue旗下Spire系列產品是國產文檔處理領域的優秀產品,支持國產化,幫助企業高效構建文檔處理的應用程序。
歡迎下載|體驗更多E-iceblue產品
獲取更多信息請咨詢 ;技術交流Q群(125237868)
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都網