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.
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.