從 Excel 進行郵件合併的 C# | Excel 郵件合併到 Excel

郵件合併使得批量創建個性化文檔變得輕而易舉,例如信件、電子郵件、發票或證書。你從一個模板開始,並使用來自電子表格的數據填充它。Excel文件中的每一行都會生成一份新的文檔,並在正確的位置填入正確的詳細信息。這是一種自動化重複性任務的智能方法,例如發送發票或生成報告。在本篇文章中,我們將向你展示如何使用 C# 從 Excel 執行郵件合併。讓我們開始吧。

本文涵蓋以下主題:

C# 郵件合併 Excel 函式庫

我們將使用 Aspose.Cells for .NET API 在 C# 中進行 Excel 的郵件合併。它提供強大的工具,可以直接在您的代碼中操作 Excel 文件。它讓開發人員可以輕鬆地創建、閱讀和更新電子表格。您也可以輕鬆處理郵件合併等高級任務。這個庫使 Excel 自動化變得快速、靈活和可靠。

要開始使用 Aspose.Cells for .NET,請按照以下簡單的安裝說明進行:

  1. 請從 releases 下載它。
  2. 使用 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 將這些替換為來自 DataTableList<T> 或任何 IEnumerable 的實際數據。例如,該庫將 &=Data.Name 替換為數據表中 Name 列的值。

準備 Excel 模板

創建一個 Excel 文件(例如,Template.xlsx)並使用智能標記。以下是樣本佈局:

NameEmailAmount
&=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.DataDataTable 類別保存了您想要合併的數據。每一列對應一個智能標記,每一行提供一組獨特的值。

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# - 輸出

從 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 上聯繫我們。

另請參閱