إنشاء كلمة من قالب في C#

يتم استخدام الإنشاء التلقائي لمستندات Word على نطاق واسع من قبل المؤسسات لإنشاء العديد من التقارير. في بعض الحالات ، يتم إنشاء المستندات من البداية. من ناحية أخرى ، يتم استخدام القوالب المحددة مسبقًا لإنشاء مستندات Word عن طريق ملء العناصر النائبة. في هذه المقالة ، سأوضح كيفية إنشاء مستندات Word من القوالب ديناميكيًا وبرمجيًا في C#. ستتعرف على كيفية تعبئة قوالب Word من أنواع مختلفة من مصادر البيانات.

سيتم تناول السيناريوهات التالية جنبًا إلى جنب مع نماذج التعليمات البرمجية في هذه المقالة:

C# Word Automation API

سنستخدم Aspose.Words for .NET - واجهة برمجة تطبيقات لأتمتة Word تسمح لك بإنشاء مستند Word من البداية أو عن طريق ملء قوالب Word المحددة مسبقًا. يمكنك إما تنزيل ثنائيات API أو تثبيتها باستخدام إحدى الطرق التالية.

باستخدام مدير الحزم NuGet

استخدام وحدة تحكم مدير الحزم

PM> Install-Package Aspose.Words

قم بإنشاء مستند Word من قالب باستخدام كائنات C#

بادئ ذي بدء ، دعنا نرى كيفية ملء قالب Word باستخدام كائنات C#. لهذا ، سننشئ مستند Word (DOC / DOCX) بالعناصر النائبة التالية كمحتوى للمستند:

<<[sender.Name]>> says: "<<[sender.Message]>>."

هنا ، المرسل هو كائن الفصل التالي الذي سنستخدمه لملء القالب.

public class Sender
{
	public string Name { get; set; }
	public string Message { get; set; }

	public Sender (string _name, string _message)
	{
		Name = _name;
		Message = _message;
	}
}

الآن ، سنستخدم محرك التقارير الخاص بـ Aspose.Words لإنشاء مستند Word من القالب وكائن فئة المرسل باتباع الخطوات التالية.

  • قم بإنشاء كائن من فئة Document وتهيئته باستخدام مسار قالب Word.
  • إنشاء وتهيئة كائن من فئة المرسل.
  • إنشاء فئة ReportingEngine.
  • قم بتعبئة القوالب باستخدام ReportingEngine.BuildReport() الذي يأخذ كائن المستند ومصدر البيانات واسم مصدر البيانات كمعلمات.
  • احفظ مستند Word الذي تم إنشاؤه باستخدام طريقة Document.Save().

يوضح نموذج التعليمات البرمجية التالي كيفية إنشاء مستند Word من قالب في C#.

Document doc = new Document("template.docx");
Sender sender = new Sender("LINQ Reporting Engine", "Hello World");
ReportingEngine engine = new ReportingEngine();
engine.BuildReport(doc, sender, "sender");
doc.Save("word.docx");

انتاج |

إنشاء مستند Word من مصدر بيانات XML في C#

لإنشاء مستند Word من مصدر بيانات XML ، سنستخدم قالب Word أكثر تعقيدًا مع العناصر النائبة التالية:

<<foreach [in persons]>>Name: <<[Name]>>, Age: <<[Age]>>, Date of Birth: <<[Birth]:"dd.MM.yyyy">>
<</foreach>>
Average age: <<[persons.Average(p => p.Age)]>>

فيما يلي مصدر بيانات XML الذي استخدمته في هذا المثال.

<Persons>
   <Person>
       <Name>John Doe</Name>
       <Age>30</Age>
       <Birth>1989-04-01 4:00:00 pm</Birth>
   </Person>
   <Person>
       <Name>Jane Doe</Name>
       <Age>27</Age>
       <Birth>1992-01-31 07:00:00 am</Birth>
   </Person>
   <Person>
       <Name>John Smith</Name>
       <Age>51</Age>
       <Birth>1968-03-08 1:00:00 pm</Birth>
   </Person>
</Persons>

فيما يلي خطوات إنشاء مستند Word من مصدر بيانات XML:

  • قم بإنشاء مثيل لفئة المستند وتهيئته باستخدام مسار قالب Word.
  • قم بإنشاء مثيل لفئة XmlDataSource وتهيئته باستخدام مسار ملف XML.
  • إنشاء فئة ReportingEngine.
  • استخدم طريقة ReportingEngine.BuildReport() بنفس الطريقة التي استخدمناها من قبل لملء قالب Word.
  • احفظ مستند Word الذي تم إنشاؤه باستخدام طريقة Document.Save().

يُظهر نموذج التعليمات البرمجية التالي كيفية إنشاء مستند Word من مصدر بيانات XML في C#.

Document doc = new Document("template.docx");
XmlDataSource dataSource = new XmlDataSource("datasource.xml");
ReportingEngine engine = new ReportingEngine();
engine.BuildReport(doc, dataSource, "persons");
doc.Save("word.docx");

انتاج |

إنشاء مستند Word من مصدر بيانات JSON في C#

دعنا الآن نرى كيفية إنشاء مستند Word باستخدام مصدر بيانات JSON. في هذا المثال ، سننشئ قائمة بالعملاء تم تجميعهم حسب مديريهم. سيكون ما يلي هو قالب Word في هذه الحالة:

<<foreach [in managers]>>Manager: <<[Name]>>
Contracts:
<<foreach [in Contract]>>- <<[Client.Name]>> ($<<[Price]>>)
<</foreach>>
<</foreach>>

فيما يلي مصدر بيانات JSON الذي سنستخدمه لملء القالب:

[
   {
       Name: "John Smith",
       Contract:
       [
           {
               Client:
               {
                   Name: "A Company"
               },
               Price: 1200000
           },
           {
               Client:
               {
                   Name: "B Ltd."
               },
               Price: 750000
           },
           {
               Client:
               {
                   Name: "C & D"
               },
               Price: 350000
           }
       ]
   },
   {
       Name: "Tony Anderson",
       Contract:
       [
           {
               Client:
               {
                   Name: "E Corp."
               },
               Price: 650000
           },
           {
               Client:
               {
                   Name: "F & Partners"
               },
               Price: 550000
           }
       ]
   },
]

لإنشاء مستند Word من JSON ، سنستخدم فئة JsonDataSource لتحميل واستخدام مصدر بيانات JSON وستظل بقية الخطوات كما هي. يوضح نموذج التعليمات البرمجية التالي كيفية إنشاء مستند Word من القالب باستخدام JSON في C#.

Document doc = new Document("template.docx");
JsonDataSource dataSource = new JsonDataSource("datasource.json");
ReportingEngine engine = new ReportingEngine();
engine.BuildReport(doc, dataSource, "managers");
doc.Save("word.docx");

انتاج |

إنشاء مستند Word من مصدر بيانات CSV في C#

لإنشاء مستند Word من CSV ، سنستخدم قالب Word التالي:

<<foreach [in persons]>>Name: <<[Column1]>>, Age: <<[Column2]>>, Date of Birth: <<[Column3]:"dd.MM.yyyy">>
<</foreach>>
Average age: <<[persons.Average(p => p.Column2)]>>

ستتم تعبئة النموذج ببيانات CSV التالية:

John Doe,30,1989-04-01 4:00:00 pm
Jane Doe,27,1992-01-31 07:00:00 am
John Smith,51,1968-03-08 1:00:00 pm

الآن ، دعنا نأتي إلى كود C#. ستبقى جميع الخطوات كما هي هنا أيضًا باستثناء التغيير الوحيد الذي سنستخدم فيه فئة CsvDataSource لتحميل بيانات CSV. يُظهر نموذج التعليمات البرمجية التالي كيفية إنشاء مستند Word من مصدر بيانات CSV.

Document doc = new Document("template.docx");
CsvDataSource dataSource = new CsvDataSource("datasource.csv");
ReportingEngine engine = new ReportingEngine();
engine.BuildReport(doc, dataSource, "persons");
doc.Save("word.docx");

انتاج |

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

يمكنك تجربة Aspose.Words for .NET باستخدام [ترخيص مؤقت] مجاني 10.

استنتاج

في هذه المقالة ، تعلمت كيفية إنشاء مستندات Word من قوالب باستخدام C#. علاوة على ذلك ، لقد رأيت كيفية استخدام مصادر بيانات الكائنات و XML و JSON و CSV لإنشاء مستندات Word. يمكنك استكشاف المزيد حول واجهة برمجة تطبيقات أتمتة C# Word باستخدام التوثيق. بالإضافة إلى ذلك ، يمكنك الاتصال بنا عبر المنتدى.

أنظر أيضا