NuvTools.Report 10.1.0

There is a newer version of this package available.
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
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="NuvTools.Report" Version="10.1.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="NuvTools.Report" Version="10.1.0" />
                    
Directory.Packages.props
<PackageReference Include="NuvTools.Report" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add NuvTools.Report --version 10.1.0
                    
#r "nuget: NuvTools.Report, 10.1.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package NuvTools.Report@10.1.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=NuvTools.Report&version=10.1.0
                    
Install as a Cake Addin
#tool nuget:?package=NuvTools.Report&version=10.1.0
                    
Install as a Cake Tool

NuvTools.Report

NuGet License

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

Library Description NuGet
NuvTools.Report Core report model infrastructure with document-table hierarchy NuGet
NuvTools.Report.Pdf PDF generation using QuestPDF and PDFsharp NuGet
NuvTools.Report.Sheet Excel and CSV generation using ClosedXML NuGet

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.

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • 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.

Version Downloads Last Updated
10.2.2 36 3/16/2026
10.2.1 109 3/9/2026
10.2.0 110 3/9/2026
10.1.0 273 1/28/2026
10.0.0 284 12/6/2025
9.1.1 899 5/26/2025
9.1.0 238 5/23/2025
9.0.0 201 11/13/2024
8.0.3 294 3/5/2024
7.0.0 522 3/10/2023
6.5.0 516 10/24/2022