أتمتة إنشاء المستندات الشخصية - مثل التقارير، والرسائل، والفواتير - يمكن أن تعزز بشكل كبير الكفاءة في سير العمل الخاص بك. مع C# Mail Merge المدعوم من Aspose.Words for .NET، يمكنك تحقيق ذلك بسلاسة. ستوجهك هذه الدليل خلال استخدام Aspose.Words Mail Merge Plugin لأداء توليد مستندات فعال وقابل للتوسع ضمن تطبيقات .NET الخاصة بك - دون الحاجة إلى MS Word أو Office Interop. بحلول نهاية هذا الدليل، ستكون مجهزًا لدمج C# mail merge لأتمتة التقارير وتبسيط سير العمل الخاص بالتقارير.


المحتويات


ما هو دمج البريد؟

دمج البريد هو منهجية قوية لتوليد المستندات ديناميكيًا عن طريق ملء القوالب بالبيانات من مصادر متنوعة. مع Aspose.Words، يمكنك أتمتة المهام مثل:

  • توليد رسائل شخصية وفواتير.
  • إنشاء تقارير جماعية باستخدام تنسيقات منظمة مثل XML، JSON، أو قواعد البيانات، مما يمكن من توليد تقارير ديناميكية باستخدام C# وAspose.Words.

مصادر البيانات لدمج البريد

يدعم Aspose.Words مجموعة متنوعة من مصادر البيانات، بما في ذلك:

  • الكائنات: ملء القوالب باستخدام مثيلات الصفوف.
  • XML: تحميل البيانات المنظمة للحقول الديناميكية.
  • JSON: دمج بسهولة مع واجهات برمجة التطبيقات الحديثة.
  • CSV: الاستفادة من البيانات الجدولية لتوليد مستندات جماعية.
  • DataTable/DataSet: استخدام ADO.NET لدمج قواعد البيانات.

تحضير قالب دمج البريد

قالب دمج البريد هو المستند الذي يحتوي على حقول الدمج التي سيتم ملؤها بالبيانات من مصدر البيانات المحدد أثناء التنفيذ. يمكن أن يكون القالب بتنسيق DOC أو DOCX ولا يتطلب نمطًا محددًا. اتبع هذه الخطوات لإنشاء قالب دمج بريد:

  1. افتح مستندك أو أنشئ واحدًا جديدًا في MS Word.
  2. ضع المؤشر في المكان الذي تريد إدراج حقل الدمج فيه.
  3. من قائمة إدراج، اختر خيار حقل.
  4. من قائمة أسماء الحقول، اختر MergeField.
  5. حدد اسمًا لحقل الدمج في مربع اسم الحقل وانقر على موافق.
  6. احفظ المستند.

توضح لقطة الشاشة التالية قالب عينة المستند.

Mail Merge Template

.NET Mail Merge API - التثبيت

يمكنك تثبيت Aspose.Words for .NET من خلال طرق متنوعة:

أداء دمج البريد في مستند Word باستخدام C#

بمجرد أن يصبح قالبك جاهزًا، يمكنك تنفيذ دمج البريد لتوليد المستندات. إليك الخطوات لأداء دمج البريد على القالب الذي أعددته:

  1. قم بتحميل مستند القالب باستخدام فئة Document.
  2. قم بتعيين خيارات دمج البريد المطلوبة، مثل Document.MailMerge.TrimWhitespaces.
  3. نفذ دمج البريد باستخدام طريقة Document.MailMerge.Execute()، مع تمرير مصدر البيانات كمعامل.
  4. احفظ المستند الناتج باستخدام طريقة Document.Save(String).

إليك عينة من الكود توضح كيفية أتمتة توليد التقارير في C# باستخدام مصفوفة من القيم:


مستند Word بعد دمج البريد

Execute Mail Merge in C#

أداء دمج البريد باستخدام مصدر بيانات XML في C#

تستخدم ملفات XML عادةً لتخزين ونقل البيانات. يدعم Aspose.Words for .NET XML كمصدر بيانات لعمليات دمج البريد. ببساطة اقرأ XML في كائن DataSet ونفذ دمج البريد. أدناه عينة من ملف XML لحالتنا.

<customers>
    <customer Name="جون بن جان" ID="1" Domain="التاريخ" City="بوسطن"/>
    <customer Name="ليزا لين" ID="2" Domain="الكيمياء" City="لوس أنجلوس"/>
    <customer Name="داجومير زيتس" ID="3" Domain="الهيرالد" City="ميلووكي"/>
    <customer Name="سارة كايرا سانتي" ID="4" Domain="تكنولوجيا المعلومات" City="ميامي"/>
</customers>

تسترجع عينة الكود التالية البيانات من مصدر بيانات XML وتنفذ دمج البريد باستخدام C#.

أدناه هو قالب دمج البريد الذي سيتم ملؤه بالبيانات من ملف XML.

Mail Merge Template for XML

تمثل هذه الصورة الصفحة الأولى من مستند Word الناتج بعد تنفيذ دمج البريد.

Execute Mail Merge with XML in C#

تنسيق مخصص لحقول الدمج

يوفر Aspose.Words for .NET تحكمًا معززًا على عملية دمج البريد. تسمح خاصية MailMerge.FieldMergingCallback بتكوين سلوك دمج البريد عند مواجهة كل حقل دمج. يتيح تنفيذ طرق IFieldMergingCallback.FieldMerging وIFieldMergingCallback.ImageFieldMerging تخصيص عملية دمج البريد.

إليك عينة من الكود توضح كيفية تطبيق تنسيق مخصص أثناء دمج البريد من خلال قالب المثال المقدم:

تقوم التالية بتنفيذ فئة HandleMergeFieldAlternatingRows.

دمج البريد مع المناطق باستخدام C#

في بعض الحالات، قد تحتاج إلى ملء وتكرار منطقة معينة داخل مستند Word. لمثل هذه السيناريوهات، استخدم دمج البريد مع المناطق. لإنشاء منطقة، حدد كلاً من بداية ونهاية المنطقة؛ ثم سيقوم دمج البريد بتكرار هذه المنطقة لكل سجل في مصدر البيانات. يحتوي مثال القالب أدناه على منطقتين - الطلبات وتفاصيل الطلب - باستخدام حقول الدمج «TableStart:Orders»، «TableEnd:Orders»، «TableStart:OrderDetails»، و«TableEnd:OrderDetails».

Mail Merge Template with Regions

إليك عينة من الكود التي تنفذ دمج البريد بناءً على المناطق للقالب المذكور سابقًا template.

توضح الطرق التالية كيفية قراءة البيانات من قاعدة بيانات.

دمج البريد المتداخل

غالبًا ما تكون البيانات من المصدر منظمة في تنسيقات علاقات. على سبيل المثال، قد تكون “الطلبات” لها علاقة واحد إلى متعدد مع “تفاصيل الطلب”، التي تحتفظ بسجلات العناصر ضمن طلب. في مثل هذه السيناريوهات، استخدم دمج البريد المتداخل. أدناه هو قالب الفاتورة الذي يناسب هذا السيناريو بشكل جيد.

Mail Merge Template with Regions

المصدر البيانات XML المقابل لمثال دمج البريد المتداخل لدينا هو:

<?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>شارع نيلسون</Address>
        <Suburb>هاويك</Suburb>
        <City>أوكلاند</City>
        <Phonenumber>543 1234</Phonenumber>
        <Date>03/01/2010</Date>
        <Total>14.00</Total>
        <Item>
            <Name>بيتزا دجاج باربكيو</Name>
            <Price>6.00</Price>
            <Quantity>1</Quantity>
            <ItemTotal>6.00</ItemTotal>
        </Item>
        <Item>
            <Name>كوك 1.5 لتر</Name>
            <Price>4.00</Price>
            <Quantity>2</Quantity>
            <ItemTotal>8.00</ItemTotal>
        </Item>
    </Order>
    <Order>
        <Number>10</Number>
        <Address>شارع باركفيل</Address>
        <Suburb>باكورانغا</Suburb>
        <City>أوكلاند</City>
        <Phonenumber>548 7342</Phonenumber>
        <Date>05/03/2010</Date>
        <Total>6.00</Total>
        <Item>
            <Name>بيتزا هاواي</Name>
            <Price>4.00</Price>
            <Quantity>1</Quantity>
            <ItemTotal>4.00</ItemTotal>
        </Item>
        <Item>
            <Name>بطاطس مقلية</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>

تقوم عينة الكود التالية بتنفيذ دمج البريد المتداخل باستخدام C#.

مستند Word بعد دمج البريد

أدناه هي الصفحة الأولى من مستند Word الناتج بعد تنفيذ دمج البريد المتداخل.

Word Document after Mail Merge

الخاتمة

Aspose.Words for .NET هو واجهة برمجة تطبيقات دمج البريد الشاملة التي توفر ميزات قياسية وموسعة مناسبة لتطبيقات .NET. مع بضع أسطر من الكود، يمكنك تطوير تقارير بسيطة أو معقدة من مصادر بيانات متنوعة بسلاسة. للحصول على إرشادات حول أفضل الممارسات لتوليد التقارير الآلية في .NET، استشر الوثائق. للبدء مع Aspose.Words for .NET، استكشف أدلة المطورين المتاحة وعينات الكود على GitHub. يوفر Aspose Plugin أيضًا وظائف متقدمة لتوليد التقارير.

جرب Aspose.Words for .NET مجانًا

يمكنك الحصول على ترخيص مؤقت مجاني لتجربة Aspose.Words for .NET بدون قيود. احصل على ترخيصك المؤقت الآن.