Este artigo aborda o problema de formatar dados JSON brutos em um formato de relatório apresentável e facilmente compreensível no aplicativo .NET. Estaremos convertendo os dados JSON em relatórios PDF e DOCX em C# usando modelos simples.

Gerar PDF ou relatório do Word a partir de JSON no CSharp

API .NET para geração de relatórios

GroupDocs.Assembly for .NET é a API de geração de relatórios e automação de documentos para aplicativos .NET. Ele permite gerar relatórios a partir dos dados disponíveis em vários formatos, como JSON, XML ou CSV, e o modelo em vários formatos diferentes, como documento do Word, **planilha **, apresentação ou formato texto. Ele também suporta muitos recursos de formatação de relatórios, como marcadores, listas numeradas, gráficos, tabelas, imagens, códigos de barras etc.

Você pode baixar as DLLs ou o instalador MSI da seção de downloads ou instalar a API em seu aplicativo .NET via NuGet.

PM> Install-Package GroupDocs.Assembly

Gerar relatório PDF a partir de dados JSON em C#

Vamos começar com as etapas que o levarão a converter dados JSON no relatório PDF formatado em C#.

  • Obter fonte de dados JSON
  • Definir modelo de acordo com dados JSON
  • Forneça fonte de dados JSON e modelo para código C# simples para geração de relatórios.

Dados JSON

Em primeiro lugar, os dados JSON de amostra a seguir são usados para a geração do relatório PDF que mostra os gerentes e seus respectivos clientes e detalhes.

\[
	{
		"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}\]
	}
\]

Modelo

Em segundo lugar, defina o seguinte modelo em TXT, DOCX ou no formato necessário. Isso permite iterar os dados dos Gerentes e seus respectivos Clientes e seus detalhes. Depois disso, você pode pular para o código para geração de relatório.

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

Etapas em C# para converter JSON em relatório PDF

As etapas a seguir do código C# automatizam a conversão de dados JSON para relatório PDF de acordo com o modelo definido.

  • Defina os dados JSON, o arquivo de modelo e os caminhos do arquivo de relatório de saída em PDF.
  • Instanciar JsonDataSoure com arquivo de dados JSON.
  • Crie DataSourceInfo com JsonDataSource definido.
  • Chame o método AssembleDocument da classe DocumentAssembler para gerar o relatório PDF a partir dos dados JSON fornecidos e do modelo definido.
// Gerar relatório PDF a partir de dados JSON usando o modelo TXT em C# com API GroupDocs.Assembly
// Defina a fonte de dados, o modelo e os arquivos de relatório de saída.
const string strDataSource = "dataPath/ManagerData.json";
const string strDocumentTemplate = "templatePath/template.txt";
const string strDocumentReport = "reportsPath/reportFromJSON.pdf";
// Instanciar fonte de dados JSON
JsonDataSource dataSource = new JsonDataSource(CommonUtilities.GetDataSourceDocument(strDataSource));
// Gerar relatório
DocumentAssembler assembler = new DocumentAssembler();
assembler.AssembleDocument(CommonUtilities.GetSourceDocument(strDocumentTemplate),
    CommonUtilities.SetDestinationDocument(strDocumentReport),
    new DataSourceInfo(dataSource, "managers"));

O código produzirá o relatório em PDF conforme mostrado na figura acima. Você também pode testar e exemplos acima e semelhantes do repositório GitHub.

Gerar relatório do MS Word a partir de dados JSON em C

Da mesma forma, como gerar o relatório PDF acima, você pode criar o relatório DOCX seguindo estas etapas:

  • Definindo o mesmo template no formato DOCX.
  • Defina o formato do documento do relatório de saída como DOCX.
  • O restante do código permanecerá o mesmo para gerar o relatório MS Word DOCX a partir dos dados JSON.
// Gerar relatório do Word a partir de dados JSON usando o modelo DOCX em C# com API GroupDocs.Assembly
// Defina a fonte de dados, o modelo e os arquivos de relatório de saída.
const string strDataSource = "dataPath/ManagerData.json";
const string strDocumentTemplate = "templatePath/template.docx";
const string strDocumentReport = "reportsPath/reportFromJSON.docx";
// Instanciar fonte de dados JSON
JsonDataSource dataSource = new JsonDataSource(CommonUtilities.GetDataSourceDocument(strDataSource));
// Gerar relatório
DocumentAssembler assembler = new DocumentAssembler();
assembler.AssembleDocument(CommonUtilities.GetSourceDocument(strDocumentTemplate),
    CommonUtilities.SetDestinationDocument(strDocumentReport),
    new DataSourceInfo(dataSource, "managers"));

Para obter mais detalhes, opções e exemplos, visite a documentação e o repositório GitHub. Para mais dúvidas, entre em contato com o suporte gratuito no fórum.

Conclusão

Neste artigo, você aprendeu a converter seus dados JSON no relatório PDF em seu aplicativo .NET usando C#. Além disso, você pode gerar relatórios em outros formatos, como DOCX, usando outras fontes de dados, como CSV e XML. Espero que você se sinta à vontade para começar a construir seu aplicativo .NET gerador de relatórios.

Veja também