CSV([逗號分隔值][3] 文件廣泛用於在應用程序之間交換數據。當您希望將此數據轉換為可呈現且有意義的信息時,您需要將其轉換為其他格式。在我們的一篇文章中,我們已經看到了[如何使用 Java 將報告中的 CSV 數據轉換為][4]。本文將指導您使用 C# 使用一個簡單的模板將 CSV 數據轉換為 PDF 和 MS Word DOC/DOCX 報告。

以下主題涵蓋如下:

  • [報告生成 .NET API][5]
  • [從 CSV 數據生成 PDF 報告][6]
  • [從 CSV 數據生成 MS Word 報告][7]

報告生成 .NET API

[GroupDocs.Assembly][8] 提供 .NET 報告 API 來自動生成報告。在本文中,我使用此 [GroupDocs.Assembly for .NET][9] 從選定的 CSV 數據和 TXT 格式模板生成報告。它還支持多種數據源,如 JSON、XML,以及來自 MS Word、Excel 和 PowerPoint 文件的數據文件。

您可以從 [下載部分][10] 下載 DLL 或 MSI 安裝程序,或通過 [NuGet][11] 在您的 .NET 應用程序中安裝 API。

PM> Install-Package GroupDocs.Assembly

在 C# 中從 CSV 數據生成 PDF 報告

讓我們首先將逗號分隔的數據轉換為可呈現的 PDF。以下步驟將指導您將 CSV 數據轉換為格式化的 PDF 報告。

  • 加載 CSV 數據源。
  • 根據CSV數據定義模板。
  • 提供CSV數據源和模板,以簡單的方法生成PDF報告。
C# 中的 CSV 到 PDF 報告

CSV 數據

要獲取 PDF 報告,我將使用以下不同個人的 CSV 樣本數據以及他們各自的年齡和出生日期數據。

Name,Age,Birth  
John Doe,32,4/1/1989 16:00  
Jane Doe,29,1/31/1992 7:00  
John Smith,53,3/8/1968 13:00

模板

下一步是定義 TXT 或 DOCX 格式的模板。以下是此示例中使用的模板,它允許使用人員的詳細信息迭代人員列表。

<<foreach \[in persons\]>>Name: <<\[Name\]>>, Age: <<\[Age\]>>, Date of Birth: <<\[Birth\]:"dd.MM.yyyy">>
<</foreach>>
Average age: <<\[persons.Average(p => p.Age)\]>>

在 C# 中從 CSV 生成 PDF 報告的步驟

以下步驟指導如何使用 C# 和 .NET Reporting API 根據定義的模板將 CSV 數據轉換為 PDF 報告。

  • 定義 CSV 數據文件、模板文件和 PDF 輸出文件路徑。
  • 使用 CSV 數據文件和加載選項實例化 [CsvDataSoure][12]。
  • 使用定義的數據源創建 [DataSourceInfo][13]。
  • 使用 [DocumentAssembler][14],使用定義的模板文件、輸出文件和 DataSourceInfo 調用 [AssembleDocument][15] 方法以獲取 PDF 報告作為輸出。

以下代碼顯示瞭如何在 C# 中將 CSV 數據轉換為 PDF 報告。

// 使用 GroupDocs.Assembly API 在 C# 中使用 TXT 模板從 CSV 數據生成 PDF 報告
// 定義數據源、模板和輸出報告文件。
string csvDataSource = @"path/person.csv";
string templateFilePath = @"path/csv-template.txt";
string reportFilePath = @"path/csv-to-pdf-report.pdf";

// 加載 CSV 數據源
CsvDataSource dataSource = new CsvDataSource(csvDataSource, new CsvDataLoadOptions(true));

// 生成 PDF 格式的報告
DocumentAssembler assembler = new DocumentAssembler();
assembler.AssembleDocument(templateFilePath, reportFilePath, new DataSourceInfo(dataSource, "persons"));

在 C# 中從 CSV 數據生成 MS Word 報告

如果您想在自動生成的報告中進行任何手動編輯,您還可以將輸出作為 MS Word 文檔獲取。該過程與上述 PDF 報告生成非常相似。以下步驟將指導從 CSV 數據生成 DOC/DOCX 報告:

  • 從文件加載 CSV 數據。
  • 以 TXT 或 DOCX 格式定義模板。
  • 設置輸出報表文檔格式為DOC/DOCX。
  • 調用 [AssembleDocument][16] 方法從 CSV 數據生成 MS Word DOCX 報告。

以下代碼展示瞭如何使用 C# 將 CSV 數據轉換為 DOCX 報告。

// 使用 GroupDocs.Assembly API 在 C# 中使用 TXT 模板從 CSV 數據生成 Word DOCX 報告
// 定義數據源、模板和輸出報告文件。
string csvDataSource = @"path/person.csv";
string templateFilePath = @"path/csv-template.txt";
string reportFilePath = @"path/csv-to-pdf-report.docx";

// 加載 CSV 數據源
CsvDataSource dataSource = new CsvDataSource(csvDataSource, new CsvDataLoadOptions(true));

// 生成 DOCX 格式的報告
DocumentAssembler assembler = new DocumentAssembler();
assembler.AssembleDocument(templateFilePath, reportFilePath, new DataSourceInfo(dataSource, "persons"));

獲取免費的 API 許可證

您可以[獲得免費的臨時許可證][17],以便在不受評估限制的情況下使用 API。

結論

總而言之,您已經學會了使用 C# 將 CSV 數據轉換為 PDF 和 MS Word 報告。您現在必須有信心通過將 CSV 數據轉換為 PDF 格式來構建您自己的 .NET 報告生成器應用程序。同樣,您也可以使用其他數據源(如 JSON 和 XML)生成報告。

有關 API 的更多信息,您可以訪問 [documentation][18] 和 [GitHub][19] 存儲庫。如果有進一步的疑問和歧義,請聯繫 [論壇][20] 上的免費支持。

也可以看看

  • [使用 C# 從 JSON 數據生成報告][21]
  • [使用 Java 從 CSV 數據生成報告][22]

[1]: https://docs.fileformat.com/spreadsheet/csv/) [2]: https://blog.groupdocs.com/zh-hant/assembly/generate-reports-from-csv-data-in-java/ [3]: https://docs.fileformat.com/spreadsheet/csv/) [4]: https://blog.groupdocs.com/zh-hant/assembly/generate-reports-from-csv-data-in-java/ [5]: #report-generator-dotnet-api [6]: #csv-to-pdf-report-csharp [7]: #csv-to-docx-report-java [8]: https://products.groupdocs.com/assembly/java [9]: https://products.groupdocs.com/assembly/net/ [10]: https://downloads.groupdocs.com/assembly/net [11]: https://www.nuget.org/packages/groupdocs.assembly [12]: https://apireference.groupdocs.com/net/assembly/groupdocs.assembly.data/csvdatasource [13]: https://apireference.groupdocs.com/assembly/net/groupdocs.assembly/datasourceinfo [14]: https://apireference.groupdocs.com/assembly/net/groupdocs.assembly/documentassembler [15]: https://apireference.groupdocs.com/assembly/net/groupdocs.assembly/documentassembler/methods/assembledocument/index [16]: https://apireference.groupdocs.com/assembly/net/groupdocs.assembly/documentassembler/methods/assembledocument/index [17]: https://purchase.groupdocs.com/temporary-license [18]: https://docs.groupdocs.com/assembly/net/ [19]: https://github.com/groupdocs-assembly [20]: https://forum.groupdocs.com/c/assembly [21]: https://blog.groupdocs.com/zh-hant/assembly/generate-reports-from-json-data-in-csharp/ [22]: https://blog.groupdocs.com/zh-hant/assembly/generate-reports-from-csv-data-in-java/