本文解决了在 .NET 应用程序中将原始 JSON 数据格式化为可呈现且易于理解的报告格式的问题。我们将使用简单的模板将 JSON 数据转换为 C# 中的 PDF 和 DOCX 报告

在 CSharp 中从 JSON 生成 PDF 或 Word 报告

用于生成报告的 .NET API

GroupDocs.Assembly for .NET 是 .NET 应用程序的报告生成和文档自动化 API。它允许您根据JSONXMLCSV 等各种格式的可用数据以及Word 文档、电子表格等多种不同格式的模板生成报告演示文稿文本格式。它还支持许多报表格式功能,如项目符号、编号列表、图表、表格、图像、条形码等。

您可以从 下载部分 下载 DLL 或 MSI 安装程序,或通过 NuGet 在您的 .NET 应用程序中安装 API。

PM> Install-Package GroupDocs.Assembly

在 C# 中从 JSON 数据生成 PDF 报告

让我们从引导您将 JSON 数据转换为 C# 格式的 PDF 报告的步骤开始。

  • 获取JSON数据源
  • 根据JSON数据定义模板
  • 为简单的 C# 代码提供 JSON 数据源和模板以生成报告。

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 输出报告文件路径。
  • 使用 JSON 数据文件实例化 JsonDataSoure
  • 使用定义的 JsonDataSource 创建 DataSourceInfo
  • 调用 DocumentAssembler 类的 AssembleDocument 方法,根据提供的 JSON 数据和定义的模板生成 PDF 报告。
// 使用 C# 中的 TXT 模板和 GroupDocs.Assembly API 从 JSON 数据生成 PDF 报告
// 定义数据源、模板和输出报告文件。
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 存储库 中测试及以上和类似示例。

在 C# 中从 JSON 数据生成 MS Word 报告

同样,就像生成上面的 PDF 报告一样,您可以按照以下步骤创建 DOCX 报告:

  • 以 DOCX 格式定义相同的模板。
  • 设置输出报表文档格式为DOCX。
  • 其余代码将保持不变,以从 JSON 数据生成 MS Word DOCX 报告。
// 使用 C# 中的 DOCX 模板和 GroupDocs.Assembly API 从 JSON 数据生成 Word 报告
// 定义数据源、模板和输出报告文件。
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 存储库。如需进一步查询,请联系 论坛 上的免费支持。

结论

在本文中,您学习了使用 C# 在 .NET 应用程序中将 JSON 数据转换为 PDF 报告。此外,您可以使用 CSV 和 XML 等其他数据源生成其他格式的报告,例如 DOCX。我希望您在开始构建您的报告生成器 .NET 应用程序时会感到自在。

也可以看看