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?

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:

  1. เปิดเอกสารของคุณหรือสร้างเอกสารใหม่ใน MS Word
  2. วางเคอร์เซอร์ที่ตำแหน่งที่คุณต้องการแทรกฟิลด์การรวม
  3. จากเมนู Insert ให้เลือกตัวเลือก Field
  4. จากรายการ Field names ให้เลือก MergeField
  5. กำหนดชื่อสำหรับฟิลด์การรวมในกล่อง Field name และคลิก OK
  6. บันทึกเอกสาร

ภาพหน้าจอด้านล่างแสดงให้เห็นถึงเอกสาร เทมเพลตตัวอย่าง.

Mail Merge Template

.NET Mail Merge API - Installation

คุณสามารถติดตั้ง Aspose.Words สำหรับ .NET ได้ผ่านหลายวิธี:

Perform Mail Merge in Word Document using C#

เมื่อเทมเพลตของคุณพร้อมแล้ว ให้ดำเนินการรวม Mail Merge เพื่อสร้างเอกสาร นี่คือขั้นตอนในการทำการรวม Mail Merge บนเทมเพลตที่คุณเตรียมไว้:

  1. โหลดเอกสารเทมเพลตโดยใช้คลาส Document
  2. ตั้งค่าตัวเลือกการรวม Mail Merge ที่ต้องการ เช่น Document.MailMerge.TrimWhitespaces
  3. ดำเนินการรวม Mail Merge โดยใช้เมธอด Document.MailMerge.Execute() โดยส่งแหล่งข้อมูลเป็นพารามิเตอร์
  4. บันทึกเอกสารที่สร้างขึ้นโดยใช้เมธอด Document.Save(String)

ด้านล่างนี้เป็นตัวอย่างโค้ดที่แสดงวิธีการ อัตโนมัติการสร้างรายงานใน C# โดยใช้ค่าในอาเรย์:


Word Document after Mail Merge

Execute Mail Merge in C#

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.

Mail Merge Template for XML

ภาพนี้แสดงถึงหน้าที่หนึ่งของเอกสาร Word ที่ได้มาหลังจากการดำเนินการรวม Mail Merge.

Execute Mail Merge with XML in C#

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 with Regions

นี่คือตัวอย่างโค้ดที่ดำเนินการรวม Mail Merge ขึ้นอยู่กับพื้นที่สำหรับ เทมเพลต ที่ได้กล่าวถึงก่อนหน้านี้.

วิธีการต่อไปนี้จะแสดงวิธีอ่านข้อมูลจากฐานข้อมูล.

Nested Mail Merge Regions

บ่อยครั้งที่ข้อมูลจากแหล่งที่มามีโครงสร้างในรูปแบบความสัมพันธ์ ตัวอย่างเช่น “Orders” อาจมีความสัมพันธ์แบบหนึ่งต่อหลายกับ “OrderDetails” ซึ่งเก็บบันทึกของรายการภายในคำสั่ง ในกรณีเช่นนี้ให้ใช้งานการรวม Mail Merge ซ้อนกัน ด้านล่างเป็น เทมเพลตใบแจ้งหนี้ ตัวอย่างที่เหมาะสมสำหรับสถานการณ์นี้.

Mail Merge Template with Regions

ต่อไปนี้คือแหล่งข้อมูล 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 ซ้อน.

Word Document after 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 โดยไม่มีข้อจำกัด รับใบอนุญาตชั่วคราวของคุณตอนนี้.

See Also