Este artículo aborda el problema de formatear datos JSON sin formato en un formato de informe presentable y fácilmente comprensible dentro de la aplicación .NET. Estaremos convirtiendo los datos JSON en informes PDF y DOCX en C# usando plantillas simples.

Genere un informe en PDF o Word desde JSON en CSharp

API .NET para la generación de informes

GroupDocs.Assembly for .NET es la API de generación de informes y automatización de documentos para aplicaciones .NET. Le permite generar informes a partir de los datos disponibles en varios formatos como JSON, XML o CSV y la plantilla en muchos formatos diferentes como documento de Word, **hoja de cálculo **, presentación o formato de texto. También es compatible con muchas funciones de formato de informes, como viñetas, listas numeradas, gráficos, tablas, imágenes, códigos de barras, etc.

Puede descargar las DLL o el instalador MSI desde la sección de descargas o instalar la API en su aplicación .NET a través de NuGet.

PM> Install-Package GroupDocs.Assembly

Generar informe en PDF a partir de datos JSON en C#

Comencemos con los pasos que lo llevarán a convertir datos JSON en el informe PDF formateado en C#.

  • Obtener fuente de datos JSON
  • Definir plantilla según datos JSON
  • Proporcione una fuente de datos JSON y una plantilla a un código C# simple para la generación de informes.

Datos JSON

En primer lugar, los siguientes datos JSON de muestra se utilizan para la generación de informes en PDF que muestran a los gerentes y sus respectivos clientes y detalles.

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

En segundo lugar, defina la siguiente plantilla en TXT, DOCX o en el formato requerido. Esto permite iterar los datos de los Gerentes y sus respectivos Clientes y sus detalles. Después de eso, puede saltar al código para la generación de informes.

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

C# Pasos para convertir JSON a informe PDF

Los siguientes pasos del código C# automatizan la conversión de datos JSON a informes PDF de acuerdo con la plantilla definida.

  • Defina los datos JSON, el archivo de plantilla y las rutas del archivo de informe de salida en PDF.
  • Instanciar JsonDataSoure con el archivo de datos JSON.
  • Crear DataSourceInfo con JsonDataSource definido.
  • Llame al método AssembleDocument de la clase DocumentAssembler para generar el informe en PDF a partir de los datos JSON proporcionados y la plantilla definida.
// Genere un informe en PDF a partir de datos JSON usando una plantilla TXT en C# con GroupDocs.Assembly API
// Defina la fuente de datos, la plantilla y los archivos de informe de salida.
const string strDataSource = "dataPath/ManagerData.json";
const string strDocumentTemplate = "templatePath/template.txt";
const string strDocumentReport = "reportsPath/reportFromJSON.pdf";
// Crear una instancia de la fuente de datos JSON
JsonDataSource dataSource = new JsonDataSource(CommonUtilities.GetDataSourceDocument(strDataSource));
// Generar informe
DocumentAssembler assembler = new DocumentAssembler();
assembler.AssembleDocument(CommonUtilities.GetSourceDocument(strDocumentTemplate),
    CommonUtilities.SetDestinationDocument(strDocumentReport),
    new DataSourceInfo(dataSource, "managers"));

El código producirá el informe en PDF como se muestra en la figura anterior. También puede probar y por encima y ejemplos similares del repositorio de GitHub.

Genere un informe de MS Word a partir de datos JSON en C#

De manera similar, al igual que generar el informe PDF anterior, puede crear el informe DOCX siguiendo estos pasos:

  • Definición de la misma plantilla en formato DOCX.
  • Establezca el formato del documento de informe de salida como DOCX.
  • El resto del código seguirá siendo el mismo para generar un informe DOCX de MS Word a partir de los datos JSON.
// Genere un informe de Word a partir de datos JSON usando una plantilla DOCX en C# con GroupDocs.Assembly API
// Defina la fuente de datos, la plantilla y los archivos de informe de salida.
const string strDataSource = "dataPath/ManagerData.json";
const string strDocumentTemplate = "templatePath/template.docx";
const string strDocumentReport = "reportsPath/reportFromJSON.docx";
// Crear una instancia de la fuente de datos JSON
JsonDataSource dataSource = new JsonDataSource(CommonUtilities.GetDataSourceDocument(strDataSource));
// Generar informe
DocumentAssembler assembler = new DocumentAssembler();
assembler.AssembleDocument(CommonUtilities.GetSourceDocument(strDocumentTemplate),
    CommonUtilities.SetDestinationDocument(strDocumentReport),
    new DataSourceInfo(dataSource, "managers"));

Para obtener más detalles, opciones y ejemplos, visite la documentación y el repositorio GitHub. Para consultas adicionales, comuníquese con el soporte gratuito en el foro.

Conclusión

En este artículo, aprendió a convertir sus datos JSON en un informe PDF dentro de su aplicación .NET usando C#. Además, puede generar informes en otros formatos como DOCX utilizando otras fuentes de datos como CSV y XML. Espero que se sienta cómodo al comenzar a crear su aplicación .NET generadora de informes.

Ver también