本文解決了在 .NET 應用程序中將原始 JSON 數據格式化為可呈現且易於理解的報告格式的問題。我們將使用簡單的模板將 JSON 數據轉換為 C# 中的 PDF 和 DOCX 報告。

在 CSharp 中從 JSON 生成 PDF 或 Word 報告

用於報告生成的 .NET API

GroupDocs.Assembly for .NET 是用於 .NET 應用程序的報告生成和文檔自動化 API。它允許您根據各種格式(如 JSON、XML 或 CSV)可用的數據和許多不同格式(如 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 報告。
// 使用 GroupDocs.Assembly API 在 C# 中使用 TXT 模板從 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 應用程序時會感覺很自在。

也可以看看