Introduction
ประหยัดเวลาและความพยายามโดยการอัตโนมัติการสร้างเอกสารแบบส่วนบุคคลเช่น รายงาน จดหมาย และใบแจ้งหนี้ ด้วย C# Mail Merge ที่ขับเคลื่อนด้วย Aspose.Words สำหรับ .NET คู่มือฉบับนี้อธิบายวิธีการใช้ Aspose.Words Mail Merge Plugin เพื่อทำการสร้างเอกสารที่มีประสิทธิภาพและสามารถปรับขนาดได้ในแอปพลิเคชัน .NET ของคุณ—โดยไม่ต้องการ MS Word หรือ Office Interop คุณจะได้เรียนรู้การรวม C# mail merge เพื่ออัตโนมัติรายงาน ซึ่งจะช่วยให้คุณปรับปรุงการทำงานของรายงานให้มีประสิทธิภาพยิ่งขึ้น
Contents:
- What is Mail Merge?
- Data Sources for Mail Merge
- Preparing Mail Merge Templates
- Getting Started with Aspose.Words for .NET
- Perform Mail Merge with Sample Data
- Mail Merge with XML Data
- Custom Merge Field Formatting
- Mail Merge with Regions
- Nested Mail Merge
- Conclusion
What is Mail Merge?
Mail Merge เป็นวิธีการในการสร้างเอกสารแบบไดนามิกโดยการนำข้อมูลจากแหล่งที่มาต่างๆ มารวมเข้าไปในเทมเพลต ด้วย Aspose.Words คุณสามารถทำการอัตโนมัติงานต่างๆ ได้อย่างไร้รอยต่อ เช่น:
- การสร้างจดหมายและใบแจ้งหนี้ด้วยรายละเอียดส่วนบุคคล
- การสร้างรายงานจำนวนมากโดยใช้ข้อมูลจากรูปแบบที่มีโครงสร้าง เช่น XML, JSON หรือฐานข้อมูล ทำให้เกิด การสร้างรายงานแบบไดนามิกด้วย C# และ Aspose.Words
Data Sources for Mail Merge
Aspose.Words รองรับแหล่งข้อมูลที่หลากหลาย:
- Objects: เติมเต็มเทมเพลตโดยใช้ตัวอย่างของคลาส
- XML: โหลดข้อมูลที่มีโครงสร้างสำหรับฟิลด์แบบไดนามิก
- JSON: รวมเข้ากับ API สมัยใหม่ได้อย่างง่ายดาย
- CSV: ใช้ประโยชน์จากข้อมูลในรูปแบบตารางสำหรับการสร้างเอกสารจำนวนมาก
- DataTable/DataSet: ใช้ ADO.NET สำหรับการรวมเข้ากับฐานข้อมูล
Preparing Template for Mail Merge
เทมเพลตการรวม Mail Merge คือเอกสารที่มีฟิลด์การรวมที่จะถูกเติมเต็มด้วยข้อมูลจากแหล่งข้อมูลที่คุณระบุระหว่างการทำงาน เทมเพลตสามารถอยู่ในรูปแบบ DOC หรือ DOCX; มิใช่จะต้องใช้สไตล์เฉพาะตามเทมเพลต เสมอ ปฏิบัติตามขั้นตอนเหล่านี้เพื่อสร้างเทมเพลตการรวม Mail Merge:
- เปิดเอกสารของคุณหรือสร้างเอกสารใหม่ใน MS Word
- วางเคอร์เซอร์ที่ตำแหน่งที่คุณต้องการแทรกฟิลด์การรวม
- จากเมนู Insert ให้เลือกตัวเลือก Field
- จากรายการ Field names ให้เลือก MergeField
- กำหนดชื่อสำหรับฟิลด์การรวมในกล่อง Field name และคลิก OK
- บันทึกเอกสาร
ภาพหน้าจอด้านล่างแสดงให้เห็นถึงเอกสาร เทมเพลตตัวอย่าง.
.NET Mail Merge API - Installation
คุณสามารถติดตั้ง Aspose.Words สำหรับ .NET ได้ผ่านหลายวิธี:
Perform Mail Merge in Word Document using C#
เมื่อเทมเพลตของคุณพร้อมแล้ว ให้ดำเนินการรวม Mail Merge เพื่อสร้างเอกสาร นี่คือขั้นตอนในการทำการรวม Mail Merge บนเทมเพลตที่คุณเตรียมไว้:
- โหลดเอกสารเทมเพลตโดยใช้คลาส Document
- ตั้งค่าตัวเลือกการรวม Mail Merge ที่ต้องการ เช่น Document.MailMerge.TrimWhitespaces
- ดำเนินการรวม Mail Merge โดยใช้เมธอด Document.MailMerge.Execute() โดยส่งแหล่งข้อมูลเป็นพารามิเตอร์
- บันทึกเอกสารที่สร้างขึ้นโดยใช้เมธอด Document.Save(String)
ด้านล่างนี้เป็นตัวอย่างโค้ดที่แสดงวิธีการ อัตโนมัติการสร้างรายงานใน C# โดยใช้ค่าในอาเรย์:
Word Document after Mail Merge
Perform Mail Merge using XML Data Source in C#
ไฟล์ XML มักใช้สำหรับเก็บและถ่ายโอนข้อมูล Aspose.Words สำหรับ .NET ยังสนับสนุน XML เป็นแหล่งข้อมูลสำหรับการดำเนินการรวม Mail Merge เพียงอ่าน XML เข้าไปในวัตถุ DataSet และดำเนินการรวม Mail Merge ด้านล่างคือไฟล์ XML ตัวอย่างสำหรับกรณีการใช้งานของเรา
<customers>
<customer Name="John Ben Jan" ID="1" Domain="History" City="Boston"/>
<customer Name="Lisa Lane" ID="2" Domain="Chemistry" City="LA"/>
<customer Name="Dagomir Zits" ID="3" Domain="Heraldry" City="Milwaukee"/>
<customer Name="Sara Careira Santy" ID="4" Domain="IT" City="Miami"/>
</customers>
ตัวอย่างโค้ดต่อไปนี้ดึงข้อมูลจากแหล่งข้อมูล XML และดำเนินการรวม Mail Merge โดยใช้ C#.
ด้านล่างคือ เทมเพลต การรวม Mail Merge ที่จะถูกเติมเต็มด้วยข้อมูลจากไฟล์ XML.
ภาพนี้แสดงถึงหน้าที่หนึ่งของเอกสาร Word ที่ได้มาหลังจากการดำเนินการรวม Mail Merge.
Custom Formatting of Merge Fields
Aspose.Words สำหรับ .NET มีการควบคุมที่เพิ่มขึ้นเหนือกระบวนการรวม Mail Merge คุณสมบัติ MailMerge.FieldMergingCallback ช่วยให้คุณสามารถกำหนดพฤติกรรมการรวม Mail Merge เมื่อพบฟิลด์การรวมแต่ละฟิลด์ การดำเนินการ IFieldMergingCallback.FieldMerging และ IFieldMergingCallback.ImageFieldMerging จะช่วยให้คุณกำหนดรูปแบบที่คุณต้องการในระหว่างการรวม Mail Merge.
ด้านล่างนี้เป็นตัวอย่างโค้ดที่แสดงวิธีการใช้การจัดรูปแบบที่กำหนดเองในระหว่างการรวม Mail Merge ผ่านเทมเพลตตัวอย่างที่จัดเตรียมไว้:
ต่อไปนี้จะดำเนินการคลาส HandleMergeFieldAlternatingRows.
Mail Merge with Regions using C#
ในบางกรณี อาจต้องเติมข้อมูลและทำซ้ำพื้นที่เฉพาะในเอกสาร Word ใช้การรวม Mail Merge กับรูปแบบเหล่านี้ในการสร้างพื้นที่ เพื่อสร้างพื้นที่ ให้ระบุตำแหน่งเริ่มต้นและสิ้นสุดของพื้นที่ การรวม Mail Merge จะทำการทำซ้ำพื้นที่นี้สำหรับแต่ละบันทึกในแหล่งข้อมูล ตัวอย่างเทมเพลตด้านล่างประกอบด้วยพื้นที่สองพื้นที่—Orders และ OrderDetails—โดยใช้ฟิลด์การรวม «TableStart:Orders», «TableEnd:Orders», «TableStart:OrderDetails», และ «TableEnd:OrderDetails».
นี่คือตัวอย่างโค้ดที่ดำเนินการรวม Mail Merge ขึ้นอยู่กับพื้นที่สำหรับ เทมเพลต ที่ได้กล่าวถึงก่อนหน้านี้.
วิธีการต่อไปนี้จะแสดงวิธีอ่านข้อมูลจากฐานข้อมูล.
Nested Mail Merge Regions
บ่อยครั้งที่ข้อมูลจากแหล่งที่มามีโครงสร้างในรูปแบบความสัมพันธ์ ตัวอย่างเช่น “Orders” อาจมีความสัมพันธ์แบบหนึ่งต่อหลายกับ “OrderDetails” ซึ่งเก็บบันทึกของรายการภายในคำสั่ง ในกรณีเช่นนี้ให้ใช้งานการรวม Mail Merge ซ้อนกัน ด้านล่างเป็น เทมเพลตใบแจ้งหนี้ ตัวอย่างที่เหมาะสมสำหรับสถานการณ์นี้.
ต่อไปนี้คือแหล่งข้อมูล XML สำหรับตัวอย่างการรวม Mail Merge ซ้อนของเรา.
<?xml version="1.0" encoding="utf-8"?>
<Orders xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="OrdersSchema.xsd">
<Order>
<Number>23</Number>
<Address>Nelson Street</Address>
<Suburb>Howick</Suburb>
<City>Auckland</City>
<Phonenumber>543 1234</Phonenumber>
<Date>03/01/2010</Date>
<Total>14.00</Total>
<Item>
<Name>BBQ Chicken Pizza</Name>
<Price>6.00</Price>
<Quantity>1</Quantity>
<ItemTotal>6.00</ItemTotal>
</Item>
<Item>
<Name>1.5 Litre Coke</Name>
<Price>4.00</Price>
<Quantity>2</Quantity>
<ItemTotal>8.00</ItemTotal>
</Item>
</Order>
<Order>
<Number>10</Number>
<Address>Parkville Avenue</Address>
<Suburb>Pakuranga</Suburb>
<City>Auckland</City>
<Phonenumber>548 7342</Phonenumber>
<Date>05/03/2010</Date>
<Total>6.00</Total>
<Item>
<Name>Hawaiian Pizza</Name>
<Price>4.00</Price>
<Quantity>1</Quantity>
<ItemTotal>4.00</ItemTotal>
</Item>
<Item>
<Name>Fries</Name>
<Price>1.00</Price>
<Quantity>2</Quantity>
<ItemTotal>2.00</ItemTotal>
</Item>
</Order>
</Orders>
ไฟล์ OrderSchema.xsd ที่เกี่ยวข้องสำหรับ XML นี้คือ:
<?xml version="1.0" encoding ="utf-8"?>
<xs:schema id="OrdersSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Orders">
<xs:complexType>
<xs:sequence>
<xs:element name="Order">
<xs:complexType>
<xs:sequence>
<xs:element name="Number"/>
<xs:element name="Address"/>
<xs:element name="Suburb"/>
<xs:element name="City"/>
<xs:element name="Phonenumber"/>
<xs:element name="Date"/>
<xs:element name="Total"/>
<xs:element name="Item">
<xs:complexType>
<xs:sequence>
<xs:element name="Name"/>
<xs:element name="Price"/>
<xs:element name="Quantity"/>
<xs:element name="ItemTotal"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
ตัวอย่างโค้ดต่อไปนี้ดำเนินการรวม Mail Merge ซ้อนโดยใช้ C#.
Word Document after Mail Merge
ด้านล่างคือหน้าที่หนึ่งของเอกสาร Word ที่ได้จากการดำเนินการรวม Mail Merge ซ้อน.
Conclusion
Aspose.Words สำหรับ .NET เป็น API การรวม Mail Merge ที่ครอบคลุมที่ให้ทั้งฟีเจอร์มาตรฐานและฟีเจอร์ขยายที่เหมาะสมสำหรับแอปพลิเคชัน .NET ด้วยการเขียนโค้ดเพียงไม่กี่บรรทัด คุณสามารถพัฒนารายงานที่ง่ายหรือซับซ้อนจากแหล่งข้อมูลที่หลากหลายได้อย่างราบรื่น สำหรับแนวทางเกี่ยวกับ แนวทางปฏิบัติที่ดีที่สุดในการสร้างรายงานอัตโนมัติใน .NET โปรดดูที่ เอกสาร เพื่อเริ่มต้นใช้งาน Aspose.Words สำหรับ .NET โปรดสำรวจ คู่มือสำหรับนักพัฒนา และตัวอย่างโค้ดบน GitHub ปลั๊กอิน Aspose ยังมีฟังก์ชันการทำงานขั้นสูงสำหรับการสร้างรายงาน
Try Aspose.Words for .NET for Free
คุณสามารถขอใบอนุญาตชั่วคราวฟรีเพื่อทดลองใช้ Aspose.Words สำหรับ .NET โดยไม่มีข้อจำกัด รับใบอนุญาตชั่วคราวของคุณตอนนี้.