צור Word מתבנית ב-C#

היצירה האוטומטית של מסמכי Word נמצא בשימוש נרחב על ידי ארגונים ליצירת דוחות רבים. במקרים מסוימים, המסמכים נוצרים מאפס. מצד שני, תבניות מוגדרות מראש משמשות ליצירת מסמכי Word על ידי איכלוס מצייני המיקום. במאמר זה אדגים כיצד ליצור מסמכי Word מתבניות באופן דינמי ופרוגרמטי ב-C#. תלמדו לדעת כיצד לאכלס את תבניות Word מסוגים שונים של מקורות נתונים.

התרחישים הבאים יחד עם דוגמאות הקוד יכוסו במאמר זה:

C# Word Automation API

אנו נשתמש ב-Aspose.Words for .NET - API של אוטומציה של Word המאפשר לך ליצור מסמך Word מאפס או על ידי מילוי תבניות Word המוגדרות מראש. אתה יכול להוריד את הקבצים הבינאריים של API או להתקין אותם באחת מהשיטות הבאות.

שימוש ב-NuGet Package Manager

שימוש בקונסולת מנהל החבילות

PM> Install-Package Aspose.Words

צור מסמך Word מתבנית באמצעות C# Objects

קודם כל, בואו נראה כיצד לאכלס את תבנית 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 מהתבנית והאובייקט של מחלקה Sender על ידי ביצוע השלבים הבאים.

  • צור אובייקט מהמחלקה Document ואתחול אותו עם הנתיב של תבנית Word.
  • צור ואתחול אובייקט של מחלקה Sender.
  • הצג 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:

  • צור מופע של המחלקה Document ואתחול אותו עם הנתיב של תבנית 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 עבור NET בחינם

אתה יכול לנסות את Aspose.Words עבור .NET באמצעות רישיון זמני בחינם.

סיכום

במאמר זה, למדת כיצד ליצור מסמכי Word מתבניות באמצעות C#. יתר על כן, ראית כיצד להשתמש באובייקטים, במקורות נתונים של XML, JSON ו-CSV כדי ליצור מסמכי Word. אתה יכול לחקור עוד על ה-API לאוטומציה של C# Word באמצעות תיעוד. בנוסף, תוכל ליצור איתנו קשר דרך הפורום שלנו.

ראה גם