![Створення Word із шаблону в C#](images/Generate-Word-from-Template-C.png#center)
Автоматизоване створення документів Word широко використовується підприємствами для створення безлічі звітів. У деяких випадках документи створюються з нуля. З іншого боку, попередньо визначені шаблони використовуються для створення документів Word шляхом заповнення заповнювачів. У цій статті я покажу, як динамічно та програмно генерувати документи Word із шаблонів у C#. Ви дізнаєтеся, як заповнювати шаблони Word із різних типів джерел даних.
У цій статті будуть розглянуті наступні сценарії разом із зразками коду:
- C# Word Automation API
- Створіть документ Word із шаблону, використовуючи значення об’єкта C#
- Створіть документ Word за допомогою джерела даних XML
- Створіть документ Word за допомогою джерела даних JSON
- Створіть документ Word за допомогою джерела даних CSV
C# Word Automation API
Ми будемо використовувати Aspose.Words for .NET – API автоматизації Word, який дозволяє створювати документ Word з нуля або шляхом заповнення попередньо визначених шаблонів Word. Ви можете завантажити двійкові файли API або встановити їх одним із наведених нижче методів.
Використання диспетчера пакетів NuGet
![](images/Aspose.Words-NuGet.png#center)
Використання консолі менеджера пакетів
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 із шаблону та об’єкта класу 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");
Вихід
![](images/Create-word-document-in-Java.png#center)
Створення документа 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");
Вихід
![](images/Create-word-document-in-Java-using-XML.png#center)
Створення документа 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");
Вихід
![](images/Create-word-document-in-Java-using-JSON.png#center)
Створення документа 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");
Вихід
![](images/Create-word-document-in-Java-using-CSV.png#center)
Спробуйте Aspose.Words for .NET безкоштовно
Ви можете спробувати Aspose.Words for .NET, використовуючи безкоштовну тимчасову ліцензію.
Висновок
У цій статті ви дізналися, як створювати документи Word із шаблонів за допомогою C#. Крім того, ви побачили, як використовувати об’єкти, джерела даних XML, JSON і CSV для створення документів Word. Ви можете дізнатися більше про API автоматизації C# Word за допомогою документації. Крім того, ви можете зв’язатися з нами через наш форум.