В этой статье рассматривается проблема форматирования необработанных данных JSON в презентабельный и понятный формат отчета в приложении .NET. Мы будем конвертировать данные JSON в отчеты PDF и DOCX на C#, используя простые шаблоны.

Создание отчета в формате PDF или Word из JSON в CSharp

.NET API для создания отчетов

GroupDocs.Assembly for .NET — это API для создания отчетов и автоматизации документов для приложений .NET. Он позволяет создавать отчеты на основе данных, доступных в различных форматах, таких как JSON, XML или CSV, и шаблонов во многих различных форматах, таких как документ Word, **электронная таблица. **, презентация или текст. Он также поддерживает множество функций форматирования отчетов, таких как маркеры, нумерованные списки, диаграммы, таблицы, изображения, штрих-коды и т. д.

Вы можете загрузить библиотеки DLL или установщик MSI из раздела загрузок или установить API в своем приложении .NET через NuGet.

PM> Install-Package GroupDocs.Assembly

Создание отчета в формате PDF из данных JSON в C#

Давайте начнем с шагов, которые приведут вас к преобразованию данных JSON в отформатированный отчет PDF на C#.

  • Получить источник данных JSON
  • Определить шаблон в соответствии с данными JSON
  • Предоставьте источник данных JSON и шаблон для простого кода C# для создания отчетов.

Данные JSON

Во-первых, следующий образец данных JSON используется для создания отчета в формате PDF, в котором показаны менеджеры и их соответствующие клиенты, а также подробные сведения.

\[
	{
		"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}\]
	},
	{
		"Name":"July James","Contract":\[
		{"Client":{"Name":"G & Co."},"Price":350000},
		{"Client":{"Name":"H Group"},"Price":250000},
		{"Client":{"Name":"I & Sons"},"Price":100000},
		{"Client":{"Name":"J Ent."},"Price":100000}\]
	}
\]

Шаблон

Во-вторых, определите следующий шаблон в формате TXT, DOCX или в требуемом формате. Это позволяет повторять данные Менеджеров и их соответствующих Клиентов и их детали. После этого вы можете перейти к коду для создания отчета.

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

Шаги C# для преобразования отчета JSON в PDF

Следующие шаги кода C# автоматизируют преобразование данных JSON в отчет PDF в соответствии с определенным шаблоном.

  • Определите пути к данным JSON, файлу шаблона и выходному файлу отчета в формате PDF.
  • Создайте экземпляр JsonDataSoure с файлом данных JSON.
  • Создайте DataSourceInfo с определенным JsonDataSource.
  • Вызовите метод AssembleDocument класса DocumentAssembler для создания отчета в формате PDF на основе предоставленных данных JSON и определенного шаблона.
// Создание отчета в формате PDF из данных JSON с использованием шаблона TXT на C# с API GroupDocs.Assembly
// Определите источник данных, шаблон и файлы выходных отчетов.
const string strDataSource = "dataPath/ManagerData.json";
const string strDocumentTemplate = "templatePath/template.txt";
const string strDocumentReport = "reportsPath/reportFromJSON.pdf";
// Создание источника данных JSON
JsonDataSource dataSource = new JsonDataSource(CommonUtilities.GetDataSourceDocument(strDataSource));
// Создать отчет
DocumentAssembler assembler = new DocumentAssembler();
assembler.AssembleDocument(CommonUtilities.GetSourceDocument(strDocumentTemplate),
    CommonUtilities.SetDestinationDocument(strDocumentReport),
    new DataSourceInfo(dataSource, "managers"));

Код создаст отчет в формате PDF, как показано на рисунке выше. Вы также можете протестировать вышеперечисленные и аналогичные примеры из репозитория GitHub.

Создание отчета MS Word из данных JSON в C#

Точно так же, как и при создании отчета в формате PDF выше, вы можете создать отчет в формате DOCX, выполнив следующие действия:

  • Определение того же шаблона в формате DOCX.
  • Установите формат документа выходного отчета как DOCX.
  • Остальной код останется прежним для создания отчета MS Word DOCX из данных JSON.
// Создание отчета Word из данных JSON с использованием шаблона DOCX на C# с API GroupDocs.Assembly
// Определите источник данных, шаблон и файлы выходных отчетов.
const string strDataSource = "dataPath/ManagerData.json";
const string strDocumentTemplate = "templatePath/template.docx";
const string strDocumentReport = "reportsPath/reportFromJSON.docx";
// Создание источника данных JSON
JsonDataSource dataSource = new JsonDataSource(CommonUtilities.GetDataSourceDocument(strDataSource));
// Создать отчет
DocumentAssembler assembler = new DocumentAssembler();
assembler.AssembleDocument(CommonUtilities.GetSourceDocument(strDocumentTemplate),
    CommonUtilities.SetDestinationDocument(strDocumentReport),
    new DataSourceInfo(dataSource, "managers"));

Дополнительные сведения, варианты и примеры см. в документации и в репозитории GitHub. Если у вас возникнут дополнительные вопросы, обратитесь в бесплатную службу поддержки на форуме.

Вывод

В этой статье вы научились преобразовывать данные JSON в отчет PDF в приложении .NET с помощью C#. Кроме того, вы можете создавать отчеты в других форматах, таких как DOCX, используя другие источники данных, такие как CSV и XML. Я надеюсь, что вы будете чувствовать себя комфортно, приступая к созданию приложения .NET для создания отчетов.

Смотрите также