
郵件合併使得批量創建個性化文檔變得輕而易舉,例如信件、電子郵件、發票或證書。你從一個模板開始,並使用來自電子表格的數據填充它。Excel文件中的每一行都會生成一份新的文檔,並在正確的位置填入正確的詳細信息。這是一種自動化重複性任務的智能方法,例如發送發票或生成報告。在本篇文章中,我們將向你展示如何使用 C# 從 Excel 執行郵件合併。讓我們開始吧。
本文涵蓋以下主題:
C# 郵件合併 Excel 函式庫
我們將使用 Aspose.Cells for .NET API 在 C# 中進行 Excel 的郵件合併。它提供強大的工具,可以直接在您的代碼中操作 Excel 文件。它讓開發人員可以輕鬆地創建、閱讀和更新電子表格。您也可以輕鬆處理郵件合併等高級任務。這個庫使 Excel 自動化變得快速、靈活和可靠。
要開始使用 Aspose.Cells for .NET,請按照以下簡單的安裝說明進行:
- 請從 releases 下載它。
- 使用 NuGet Package Manager 以以下命令安裝庫:
PM> Install-Package Aspose.Cells
Mail Merge 在 Aspose.Cells 中是如何工作的?
Aspose.Cells 不支持 `mail merge” 在 the same way as Word。它使用 Smart Markers 將郵件合併添加到 Excel。這些標記在您的電子表格中充當佔位符,並且該庫在運行時用真實數據替換它們。在處理來自數據源的每一行時,它會填充模板並自動擴展內容,讓您僅用幾行 C# 代碼生成完全個性化的文檔。
&=DataSource.ColumnName
在處理過程中,Aspose.Cells 將這些替換為來自 DataTable
、List<T>
或任何 IEnumerable
的實際數據。例如,該庫將 &=Data.Name
替換為數據表中 Name 列的值。
準備 Excel 模板
創建一個 Excel 文件(例如,Template.xlsx)並使用智能標記。以下是樣本佈局:
Name | Amount | |
---|---|---|
&=Data.Name | &=Data.Email | &=Data.Amount |
逐步指南:在C#中從Excel執行郵件合併
要使用 Aspose.Cells for .NET 從 Excel 執行郵件合併,只需按照以下步驟操作:
步驟 1:加載 Excel 模板
加載包含智能標記的 Excel 模板文件,使用 Workbook
類。Workbook
類表示整個 Excel 文件(工作簿)。加載的模板文件作為合併輸出的佈局。
Workbook workbook = new Workbook("Template.xlsx");
步驟 2:創建一個 DataTable
在這裡,我們創建一個 DataTable 來模擬您的 Excel 數據源。每一列對應一個智能標記,每一行代表一組要插入的值。來自 System.Data
的 DataTable
類別保存了您想要合併的數據。每一列對應一個智能標記,每一行提供一組獨特的值。
DataTable dt = new DataTable("Data");
dt.Columns.Add("Name");
dt.Columns.Add("Email");
dt.Columns.Add("Amount");
dt.Rows.Add("Alice", "alice@example.com", 1000);
dt.Rows.Add("Bob", "bob@example.com", 1500);
步驟 3:將您的 Excel 模板連結到資料來源
我們使用 WorkbookDesigner
類別來將模板與數據連接。WorkbookDesigner
是 Aspose.Cells 中的一個特殊類別,專門用於處理智能標記和數據綁定。它將您的數據源(如 DataTable)與 Excel 模板鏈接。SetDataSource()
方法將 DataTable(數據)綁定到工作簿中的智能標記。
WorkbookDesigner designer = new WorkbookDesigner(workbook);
designer.SetDataSource(dt);
SetDataSource()
將 DataTable 附加到工作簿中的智能標記。"Data"
是在標記中使用的名稱,例如&=Data.Name
。
步驟 4:執行郵件合併
一旦您設定了資料來源,調用 Process()
會使用 DataTable 中的實際值填充所有的 Smart Markers。此命令執行郵件合併。它會遍歷 Smart Markers,並將它們替換為來自資料來源的實際值。
designer.Process();
步驟 5: 儲存檔案
最後,我們將完成的文件保存,並將所有數據合併在一起。
workbook.Save("MergedOutput.xlsx");
將合併的輸出儲存為 PDF
您可以輕鬆地將合併的 Excel 文檔以一行代碼保存為 PDF。
// Set PDF options
PdfSaveOptions options = new PdfSaveOptions();
// Save as PDF
workbook.Save("MergedDocument.pdf", SaveFormat.Pdf);
Complete C# Code to Mail Merge Data
// 載入 Excel 模板
Workbook workbook = new Workbook("Template.xlsx");
// Create dummy data
DataTable dt = new DataTable("Data");
dt.Columns.Add("Name");
dt.Columns.Add("Email");
dt.Columns.Add("Amount");
dt.Rows.Add("Alice", "alice@example.com", 1000);
dt.Rows.Add("Bob", "bob@example.com", 1200);
// 設置數據來源
WorkbookDesigner designer = new WorkbookDesigner(workbook);
designer.SetDataSource(dt);
// 處理智能標記(郵件合併)
designer.Process();
// Save the output
workbook.Save("MergedOutput.xlsx");
Output
輸出的 Excel 檔案包含每個條目的行,並在智能標記的位置填入個性化數據。

從 Excel 進行郵件合併的 C# - 輸出
獲得免費許可證
獲取免費臨時許可證,讓您可以測試 Aspose.Cells for .NET 的全部功能,無任何限制。這對於評估 API 以進行郵件合併、Excel 報告或 PDF 輸出等自動化任務非常理想。
Excel 到 Excel 郵件合併:免費資源
除了 Excel 郵件合併,我們還提供各種資源來幫助您加深對 Aspose.Cells for .NET 的理解。查看我們的文檔、教程和社區論壇以獲取更多見解。
常見問題 (FAQs)
Q1: 我可以在未安裝 Microsoft Office 的情況下使用 Excel 郵件合併嗎?
是的,郵件合併並不需要 Microsoft Office。Aspose.Cells 獨立運行,並通過其自己的 API 處理所有事務。
Q2: Smart Markers 和 Word Merge Fields 有什麼區別?
Smart Markers 在 Excel 中運作,並且對於逐行數據擴展來說更加可自定義。合併字段是特定於 Word 的。
Q3: 我可以使用 Aspose 將 Excel 合併到 Word 嗎?
是的,但你將需要 Aspose.Words 來應對這種情況。
Q4: 是否可以自動化從 Excel 合併生成 PDF?
絕對可以。只需使用 Aspose.Cells 將最終工作簿保存為 PDF 格式。
結論
從 Excel 進行郵件合併提供了一種強大的方法,利用熟悉的電子表格界面生成動態、個性化的文件。在這篇部落格文章中,我們使用 C# 演示了如何從 Excel 進行郵件合併。通過使用 Aspose.Cells 智能標記,您可以完全自動化此過程,生成數千份發票、證書或任何結構化報告。
如果您有任何問題或需要進一步的協助,請隨時在我們的 free support forum 上聯繫我們。