NuvTools.Report
10.1.0
See the version list below for details.
dotnet add package NuvTools.Report --version 10.1.0
NuGet\Install-Package NuvTools.Report -Version 10.1.0
<PackageReference Include="NuvTools.Report" Version="10.1.0" />
<PackageVersion Include="NuvTools.Report" Version="10.1.0" />
<PackageReference Include="NuvTools.Report" />
paket add NuvTools.Report --version 10.1.0
#r "nuget: NuvTools.Report, 10.1.0"
#:package NuvTools.Report@10.1.0
#addin nuget:?package=NuvTools.Report&version=10.1.0
#tool nuget:?package=NuvTools.Report&version=10.1.0
NuvTools.Report
A .NET library suite for generating reports in PDF, Excel, and CSV formats. Build structured table-based reports with styling, company branding, and reflection-based data binding. Targets .NET 8, .NET 9, and .NET 10.
Libraries
Installation
# For PDF export
dotnet add package NuvTools.Report.Pdf
# For Excel/CSV export
dotnet add package NuvTools.Report.Sheet
# Or install the base library only
dotnet add package NuvTools.Report
Features
- Multiple export formats: PDF (landscape A4), Excel (.xlsx), CSV
- Automatic data binding from object collections via reflection
- Customizable colors, fonts, and formatting
- Company branding with logos, names, and URLs in headers
- Metadata support: titles, filter descriptions, issue dates, user info
- Base64-encoded output for API transmission
- Multi-table documents with separate worksheets/pages
- DateTime formatting with custom format strings
- PDF merging utility
Architecture
The library uses a document-table-component hierarchy:
Document
└── Tables (List<Table>)
├── Info (metadata: name, title, company info, issue date/user)
├── Style (formatting: colors, fonts)
└── Content (Body)
├── Header
│ └── Columns (List<Column>)
└── Rows (List<Row>)
└── Cells (List<Cell>)
Usage
PDF Export
using NuvTools.Report.Table.Models;
using NuvTools.Report.Table.Models.Components;
using NuvTools.Report.Pdf.Table;
// Define columns
var columns = new List<Column>
{
new Column { Name = "Id", Label = "ID", Order = 1, Format = "" },
new Column { Name = "Name", Label = "Product Name", Order = 2, Format = "" },
new Column { Name = "Price", Label = "Price", Order = 3, Format = "C2" },
new Column { Name = "Date", Label = "Date", Order = 4, Format = "yyyy-MM-dd" }
};
// Create a table
var table = new Table
{
Info = new Info
{
Name = "Products",
Title = "Product Catalog",
CompanyAbbreviation = "ACME Corp",
CompanyUrl = "https://acme.com",
FilterDescription = "All Products",
IssueDate = DateTime.Now,
IssueUser = "john.doe"
},
Style = new Style
{
BackgroundHeaderColor = "#003366",
FontHeaderColor = "#FFFFFF"
},
Content = new Body()
};
// Populate rows from objects using reflection
table.SetRows(columns, products);
// Create document and export
var document = new Document
{
BackgroundDocumentHeaderColor = "#003366",
Tables = [table]
};
string pdfBase64 = document.ExportFirstSheetToPdf();
List<string> allPdfs = document.ExportSheetToPdf();
Excel Export
using NuvTools.Report.Sheet.Extensions;
string excelBase64 = document.ExportToExcel();
byte[] excelBytes = Convert.FromBase64String(excelBase64);
File.WriteAllBytes("report.xlsx", excelBytes);
CSV Export
using NuvTools.Report.Sheet.Extensions;
List<string> csvFiles = document.ExportToCsv();
string csvBase64 = document.ExportFirstSheetToCsv();
PDF Merging
using NuvTools.Report.Pdf.Util;
byte[] mergedPdf = PdfUtil.Merge([pdf1Bytes, pdf2Bytes]);
Dependencies
NuvTools.Report.Pdf
- QuestPDF [2025.12.3,2026.1.0)
- PDFsharp [6.2.4,6.3.0)
NuvTools.Report.Sheet
- ClosedXML [0.105.0,0.106.0)
Building
This solution uses the .slnx (XML-based solution) format.
dotnet build NuvTools.Report.slnx
dotnet build NuvTools.Report.slnx -c Release
Project Structure
nuvtools-report/
├── src/
│ ├── NuvTools.Report/
│ ├── NuvTools.Report.Pdf/
│ └── NuvTools.Report.Sheet/
├── NuvTools.Report.slnx
└── README.md
License
This project requires license acceptance. See the LICENSE file for details.
Links
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- No dependencies.
-
net8.0
- No dependencies.
-
net9.0
- No dependencies.
NuGet packages (2)
Showing the top 2 NuGet packages that depend on NuvTools.Report:
| Package | Downloads |
|---|---|
|
NuvTools.Report.Pdf
PDF report generation with table rendering, company branding, and document merging using QuestPDF and PDFsharp. |
|
|
NuvTools.Report.Sheet
Implementation of NuvTools.Report.Sheet abstractions: Excel export with multi-sheet workbooks and styled formatting using ClosedXML, CSV export and reading with RFC 4180 support, and fixed-length (positional) file reading. All output encoded as base64 for easy API transmission. |
GitHub repositories
This package is not used by any popular GitHub repositories.