المقدمة

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


المحتويات:


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

دمج البريد هو منهجية قوية لتوليد الوثائق ديناميكيًا عن طريق ملء القوالب بالبيانات من مصادر متنوعة. مع 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. احفظ الوثيقة.

توضح لقطة الشاشة التالية قالب عينة للوثيقة.

قالب دمج البريد

واجهة برمجة تطبيقات دمج البريد لـ .NET - التثبيت

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

تنفيذ دمج البريد في وثيقة Word باستخدام C#

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

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

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


وثيقة Word بعد دمج البريد

تنفيذ دمج البريد في C#

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

تستخدم ملفات XML عادةً لتخزين ونقل البيانات. يدعم Aspose.Words لـ .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.

قالب دمج البريد لـ XML

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

تنفيذ دمج البريد مع XML في C#

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

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

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

تقوم الكود التالي بتنفيذ HandleMergeFieldAlternatingRows.

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

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

دمج البريد مع المناطق

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

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

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

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

قالب دمج البريد مع المناطق

البيانات المصدر 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 بعد دمج البريد

الخاتمة

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

جرب Aspose.Words لـ .NET مجانًا

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

انظر أيضًا