Trộn thư từ Excel trong C# | Trộn thư Excel sang Excel

Mail merge giúp bạn dễ dàng tạo ra các tài liệu cá nhân hóa hàng loạt, chẳng hạn như thư, email, hóa đơn hoặc chứng chỉ. Bạn bắt đầu với một mẫu và điền vào đó bằng dữ liệu từ một bảng tính. Mỗi hàng trong tệp Excel tạo ra một tài liệu mới với các chi tiết chính xác ở đúng vị trí. Đây là một cách thông minh để tự động hóa các nhiệm vụ lặp đi lặp lại như gửi hóa đơn hoặc tạo báo cáo. Trong bài viết này, chúng tôi sẽ hướng dẫn bạn cách thực hiện mail merge từ Excel bằng C#. Hãy bắt đầu.

Bài viết này đề cập đến các chủ đề sau:

Thư viện Trộn Mail Excel C#

Chúng tôi sẽ sử dụng API Aspose.Cells for .NET để thực hiện hợp nhất thư từ Excel trong C#. Nó cung cấp các công cụ mạnh mẽ để làm việc với các tệp Excel ngay trong mã của bạn. Nó cho phép các nhà phát triển tạo, đọc và cập nhật bảng tính một cách dễ dàng. Bạn cũng có thể xử lý các tác vụ nâng cao như hợp nhất thư mà không gặp rắc rối. Thư viện giúp tự động hóa Excel nhanh chóng, linh hoạt và đáng tin cậy.

Để bắt đầu với Aspose.Cells for .NET, hãy làm theo những hướng dẫn cài đặt đơn giản sau:

  1. Vui lòng tải xuống từ releases.
  2. Cài đặt thư viện bằng cách sử dụng NuGet Package Manager với lệnh sau:
PM> Install-Package Aspose.Cells

Làm thế nào Mail Merge hoạt động với Aspose.Cells?

Aspose.Cells không hỗ trợ `mail merge” theo cách giống như Word.Nó thêm mail merge vào Excel bằng cách sử dụng Smart Markers.Những marker này hoạt động như các vị trí giữ chỗ trong bảng tính của bạn, và thư viện thay thế chúng bằng dữ liệu thực tại runtime. Khi nó xử lý từng hàng từ nguồn dữ liệu của bạn, nó điền vào mẫu và tự động mở rộng nội dung, cho phép bạn tạo ra các tài liệu cá nhân hóa hoàn toàn chỉ với vài dòng mã C#.

&=DataSource.ColumnName

Trong quá trình xử lý, Aspose.Cells thay thế những điều này bằng dữ liệu thực từ một DataTable, List<T>, hoặc bất kỳ IEnumerable nào. Ví dụ, thư viện thay thế &=Data.Name bằng giá trị từ cột Name trong bảng Data.

Chuẩn bị mẫu Excel

Tạo một tệp Excel (ví dụ: Template.xlsx) với các đánh dấu thông minh. Dưới đây là mẫu bố cục:

TênEmailSố tiền
&=Data.Name&=Data.Email&=Data.Amount

Hướng dẫn từng bước để thực hiện Mail Merge từ Excel trong C#

Để thực hiện một mail merge từ Excel sử dụng Aspose.Cells for .NET, chỉ cần làm theo các bước sau:

Bước 1: Tải Mẫu Excel

Tải tệp mẫu Excel chứa Smart Markers bằng cách sử dụng lớp Workbook. Lớp Workbook đại diện cho toàn bộ tệp Excel (sổ làm việc).Tệp mẫu đã tải sẽ đóng vai trò là bố cục cho đầu ra đã hợp nhất của bạn.

Workbook workbook = new Workbook("Template.xlsx");

Bước 2: Tạo một DataTable

Ở đây, chúng tôi tạo một DataTable mô phỏng nguồn dữ liệu Excel của bạn. Mỗi cột tương ứng với một dấu hiệu thông minh, và mỗi hàng đại diện cho một tập hợp giá trị để chèn. Lớp DataTable từ System.Data chứa dữ liệu bạn muốn hợp nhất. Mỗi cột tương ứng với một dấu hiệu thông minh, và mỗi hàng cung cấp một tập hợp giá trị độc đáo.

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);

Bước 3: Liên kết Mẫu Excel của bạn với Nguồn Dữ liệu

Chúng tôi sử dụng lớp WorkbookDesigner để kết nối mẫu với dữ liệu. Lớp WorkbookDesigner là một lớp đặc biệt trong Aspose.Cells được thiết kế để xử lý các dấu hiệu thông minh và liên kết dữ liệu. Nó liên kết nguồn dữ liệu của bạn (như một DataTable) với mẫu Excel. Phương thức SetDataSource() liên kết DataTable (Dữ liệu) với các dấu hiệu thông minh trong sổ làm việc.

WorkbookDesigner designer = new WorkbookDesigner(workbook);
designer.SetDataSource(dt);
  • SetDataSource() gán DataTable vào các Smart Markers trong workbook.
  • "Data" là tên được sử dụng trong các dấu hiệu như &=Data.Name.

Bước 4: Thực hiện Mail Merge

Một khi bạn đã thiết lập nguồn dữ liệu, việc gọi Process() sẽ điền tất cả các Smart Markers bằng các giá trị thực từ DataTable. Lệnh này thực hiện việc hợp nhất thư. Nó đi qua các Smart Markers và thay thế chúng bằng các giá trị thực từ nguồn dữ liệu.

designer.Process();

Bước 5: Lưu tệp tin

Cuối cùng, chúng tôi lưu tệp hoàn tất với tất cả dữ liệu đã được gộp lại.

workbook.Save("MergedOutput.xlsx");

Lưu nội dung hợp nhất dưới dạng PDF

Bạn có thể dễ dàng lưu tài liệu Excel đã gộp dưới dạng PDF chỉ với một dòng mã.

// Set PDF options
PdfSaveOptions options = new PdfSaveOptions();

// Save as PDF
workbook.Save("MergedDocument.pdf", SaveFormat.Pdf);

Complete C# Code to Mail Merge Data

// Tải mẫu Excel lên
Workbook workbook = new Workbook("Template.xlsx");

// Tạo dữ liệu giả
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);

// Đặt nguồn dữ liệu
WorkbookDesigner designer = new WorkbookDesigner(workbook);
designer.SetDataSource(dt);

// Xử lý dấu hiệu thông minh (trộn thư)
designer.Process();

// Save the output
workbook.Save("MergedOutput.xlsx");

Output

Tệp Excel đầu ra chứa một hàng cho mỗi mục với dữ liệu cá nhân hóa được điền thay thế cho các dấu hiệu thông minh.

Ghép thư từ Excel trong C# - Đầu ra

Mail Merge từ Excel trong C# - Đầu ra

Nhận Giấy phép Miễn phí

Nhận giấy phép tạm thời miễn phí cho phép bạn thử nghiệm các tính năng đầy đủ của Aspose.Cells for .NET mà không bị giới hạn. Nó rất lý tưởng nếu bạn đang đánh giá API cho các tác vụ tự động hóa như hợp nhất email, báo cáo Excel hoặc xuất PDF.

Excel to Excel Mail Merge: Tài nguyên miễn phí

Ngoài việc sử dụng mail merge trong Excel, chúng tôi cung cấp nhiều tài nguyên khác nhau để giúp bạn nâng cao hiểu biết về Aspose.Cells for .NET. Hãy xem tài liệu, hướng dẫn và diễn đàn cộng đồng của chúng tôi để có thêm thông tin.

Câu hỏi thường gặp (FAQs)

Q1: Tôi có thể sử dụng gộp thư Excel mà không cần cài đặt Microsoft Office không?

Có, mail merge không yêu cầu Microsoft Office. Aspose.Cells hoạt động độc lập và xử lý mọi thứ thông qua các API của nó.

Q2: Sự khác biệt giữa Smart Markers và Word Merge Fields là gì?

Smart Markers hoạt động trong Excel và có khả năng tùy chỉnh cao hơn cho việc mở rộng dữ liệu theo hàng. Các trường hợp hợp nhất là đặc trưng cho Word.

Q3: Tôi có thể hợp nhất từ Excel sang Word bằng cách sử dụng Aspose không?

Có, nhưng bạn sẽ cần Aspose.Words cho kịch bản đó.

Q4: Có thể tự động hóa việc tạo PDF từ các hợp nhất Excel không?

Chắc chắn rồi. Chỉ cần lưu bảng tính cuối cùng ở định dạng PDF bằng cách sử dụng Aspose.Cells.

Kết luận

Mail merge from Excel cung cấp một cách mạnh mẽ để tạo ra các tài liệu động, cá nhân hóa bằng cách sử dụng giao diện bảng tính quen thuộc. Trong bài viết trên blog này, chúng tôi đã hướng dẫn cách thực hiện mail merge từ Excel bằng C#. Bằng cách sử dụng Aspose.Cells Smart Markers, bạn có sự linh hoạt để tự động hóa hoàn toàn quy trình này và tạo ra hàng ngàn hóa đơn, chứng chỉ hoặc bất kỳ báo cáo có cấu trúc nào.

Nếu bạn có bất kỳ câu hỏi nào hoặc cần thêm sự trợ giúp, xin vui lòng liên hệ với chúng tôi tại free support forum.

See Also