Tạo Word từ mẫu trong C#

Tự động hóa việc tạo tài liệu là rất quan trọng đối với các doanh nghiệp để tạo ra các báo cáo, hóa đơn và thư từ động. Với Mail Merge Aspose.Words cho .NET, bạn có thể hiệu quả điền các mẫu Word bằng dữ liệu từ nhiều nguồn khác nhau, bao gồm đối tượng, CSV, JSON và XML. Hướng dẫn này sẽ minh họa cách sử dụng Mail Merge trong C# để tối ưu các quy trình làm việc tài liệu một cách tự động, cụ thể nhấn mạnh vào tạo tài liệu Word động bằng C# .NET.


Các chủ đề được đề cập:


Tổng quan về Mail Merge cho .NET

Mail Merge Aspose.Words cho .NET cho phép các nhà phát triển tạo ra các tài liệu cá nhân hóa từ các mẫu được định nghĩa trước có chứa các trường gộp. Plugin được thiết kế để tích hợp liền mạch trong các môi trường .NET, cung cấp khả năng để:

  • Điền các mẫu với dữ liệu một cách động, hỗ trợ tạo tài liệu Word trong khung .NET.
  • Thực hiện việc tạo tài liệu hàng loạt một cách hiệu quả, tận dụng giải pháp mail merge .NET cho tập dữ liệu lớn.
  • Giữ định dạng nhất quán giữa các đầu ra, nâng cao các thực tiễn tốt nhất về mẫu tài liệu Word C#.

Các tính năng chính:

  1. Hỗ trợ Nhiều Nguồn: Sử dụng dữ liệu từ các đối tượng, cơ sở dữ liệu, XML, JSON và CSV để tạo các tài liệu Word tùy chỉnh với C#.
  2. Hiệu suất Cao: Xử lý hiệu quả các tập dữ liệu lớn và các thao tác hàng loạt cho tạo tài liệu Word động với .NET Core.
  3. Mẫu Tùy Chỉnh: Tạo các mẫu với các dấu chấm hỏi cho việc chèn dữ liệu, tận dụng khả năng tự động hóa mail merge trong Word .NET.

Thiết lập

Cài đặt Aspose.Words bằng NuGet:

PM> Install-Package Aspose.Words

Tạo tài liệu Word từ mẫu bằng đối tượng C#

Trước tiên, hãy xem cách điền một mẫu Word bằng các đối tượng C#. Để minh họa, chúng ta sẽ tạo một tài liệu Word (DOC/DOCX) với các dấu chấm hỏi sau làm nội dung của tài liệu:

<<[sender.Name]>> nói: "<<[sender.Message]>>."

Trong đó, sender là một thể hiện của một lớp mà chúng ta sẽ sử dụng để điền mẫu bằng cách sử dụng phương pháp C# tạo tài liệu Word từ cơ sở dữ liệu.

Bây giờ, chúng ta có thể sử dụng động cơ báo cáo của Aspose.Words để tạo tài liệu Word từ mẫu và thể hiện của lớp Sender bằng cách thực hiện các bước sau:

  • Tạo một thể hiện của lớp Document và khởi tạo nó với đường dẫn đến mẫu Word.
  • Tạo và khởi tạo một đối tượng của lớp Sender.
  • Khởi tạo lớp ReportingEngine.
  • Điền mẫu bằng cách sử dụng ReportingEngine.BuildReport(), nhận thể hiện của Document, nguồn dữ liệu và tên của nguồn dữ liệu như các tham số.
  • Lưu tài liệu Word đã tạo bằng cách sử dụng phương thức Document.Save().

Mẫu mã sau cho thấy cách tạo tài liệu Word từ một mẫu trong C#.

Kết quả

Tạo tài liệu Word từ nguồn dữ liệu XML trong C#

Để tạo tài liệu Word từ nguồn dữ liệu XML, chúng ta sẽ sử dụng một mẫu Word phức tạp hơn với các dấu chấm hỏi sau:

<<foreach [in persons]>>Tên: <<[Name]>>, Tuổi: <<[Age]>>, Ngày sinh: <<[Birth]:"dd.MM.yyyy">>
<</foreach>>
Tuổi trung bình: <<[persons.Average(p => p.Age)]>>

Nguồn dữ liệu XML được sử dụng trong ví dụ này như sau.

Để tạo tài liệu Word từ nguồn dữ liệu XML, thực hiện các bước sau:

  • Tạo một thể hiện của lớp Document và khởi tạo nó với đường dẫn đến mẫu Word.
  • Tạo một thể hiện của lớp XmlDataSource và khởi tạo nó với đường dẫn đến tệp XML.
  • Khởi tạo lớp ReportingEngine.
  • Sử dụng phương thức ReportingEngine.BuildReport() như trước để điền mẫu Word.
  • Lưu tài liệu Word đã tạo bằng cách sử dụng phương thức Document.Save().

Dưới đây là mẫu mã minh họa cách tạo tài liệu Word từ nguồn XML trong C#.

Kết quả

Tạo tài liệu Word từ nguồn dữ liệu JSON trong C#

Tiếp theo, hãy khám phá cách tạo tài liệu Word bằng nguồn dữ liệu JSON. Trong ví dụ này, chúng ta sẽ tạo một danh sách khách hàng được phân chia theo người quản lý của họ. Mẫu Word sẽ trông như sau:

<<foreach [in managers]>>Người quản lý: <<[Name]>>
Hợp đồng:
<<foreach [in Contract]>>- <<[Client.Name]>> ($<<[Price]>>)
<</foreach>>
<</foreach>>

Nguồn dữ liệu JSON mà chúng ta sẽ sử dụng để điền mẫu như sau:

Để tạo tài liệu Word từ JSON, chúng ta sẽ sử dụng lớp JsonDataSource để tải nguồn dữ liệu, và các bước còn lại sẽ theo cùng cấu trúc trước đó. Mẫu mã dưới đây cho thấy cách tạo tài liệu Word từ mẫu JSON trong C#.

Kết quả

Tạo tài liệu Word từ nguồn dữ liệu CSV trong C#

Để tạo tài liệu Word từ nguồn CSV, chúng ta sẽ sử dụng mẫu Word sau:

<<foreach [in persons]>>Tên: <<[Column1]>>, Tuổi: <<[Column2]>>, Ngày sinh: <<[Column3]:"dd.MM.yyyy">>
<</foreach>>
Tuổi trung bình: <<[persons.Average(p => p.Column2)]>>

Mẫu này sẽ được điền bằng nguồn dữ liệu CSV sau:

Bây giờ, hãy xem xét mã C#. Các bước vẫn giống nhau ngoại trừ một điểm khác biệt chính: chúng ta sẽ sử dụng lớp CsvDataSource để tải dữ liệu CSV. Mẫu mã sau cho thấy cách tạo tài liệu Word từ nguồn dữ liệu CSV.

Kết quả

Thử Aspose.Words cho .NET miễn phí

Bạn có thể thử Aspose.Words cho .NET bằng cách sử dụng giấy phép tạm thời miễn phí.

Kết luận

Trong bài viết này, bạn đã học cách tạo tài liệu Word từ các mẫu bằng C#. Bạn đã khám phá cách tận dụng các nguồn dữ liệu khác nhau như đối tượng, XML, JSON và CSV cho tạo tài liệu động .NET. Đi sâu hơn vào khả năng của xử lý mẫu Word trong .NET bằng cách khám phá tài liệu, và hãy tự do liên hệ với chúng tôi qua diễn đàn.

Xem thêm