从 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 包管理器 安装库,命令如下:
PM> Install-Package Aspose.Cells

如何使用 Aspose.Cells 进行邮件合并?

Aspose.Cells 不支持在 the same way as Word 中使用`邮件合并”。它通过 Smart Markers 将邮件合并添加到 Excel 中。这些标记在您的电子表格中充当占位符,库会在运行时将它们替换为真实数据。在处理数据源中的每一行时,它会填充模板并自动扩展内容,让您只需几行 C# 代码即可生成完全个性化的文档。

&=DataSource.ColumnName

在处理过程中,Aspose.Cells 将这些替换为来自 DataTableList<T> 或任何 IEnumerable 的实际数据。例如,库将 &=Data.Name 替换为数据表中名称列的值。

准备 Excel 模板

创建一个 Excel 文件(例如,Template.xlsx),并包含智能标记。以下是一个示例布局:

名称电子邮件金额
&=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 来模拟您的 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(Data)绑定到工作簿中的智能标记。

WorkbookDesigner designer = new WorkbookDesigner(workbook);
designer.SetDataSource(dt);
  • SetDataSource() 将 DataTable 附加到工作簿中的智能标记。
  • "数据" 是在像 &=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);

完整的 C# 代码以进行邮件合并数据

// 加载 Excel 模板
Workbook workbook = new Workbook("Template.xlsx");

// 创建虚拟数据
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: 智能标记和合并字段之间有什么区别?

智能标记在Excel中工作,并且对于按行扩展数据来说更加可定制。合并字段是特定于Word的。

Q3: 我可以使用 Aspose 从 Excel 合并到 Word 吗?

是的,但是您需要 Aspose.Words 来处理该场景。

Q4: 从 Excel 合并自动生成 PDF 是否可能?

绝对可以。只需使用 Aspose.Cells 将最终工作簿保存为 PDF 格式。

结论

从 Excel 进行邮件合并提供了一种强大的方式,以使用熟悉的电子表格界面生成动态、个性化的文档。在这篇博客文章中,我们使用 C# 演示了如何从 Excel 进行邮件合并。通过使用 Aspose.Cells 智能标记,您可以完全自动化此过程,并生成数千份发票、证书或任何结构化报告。

如果您有任何问题或需要进一步的帮助,请随时通过我们的 free support forum 联系我们。

查看也。