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 (3)

Showing the top 3 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, and CSV export and reading with RFC 4180 support. All output encoded as base64 for easy API transmission.

NuvTools.Report.FixedLength

Implementation of NuvTools.Report.FixedLength abstractions: reflection-based reader for fixed-length (positional) text files with attribute-based field mapping, custom converters, and trim/optional-field support.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
10.3.1 311 4/27/2026
10.3.0 165 4/26/2026
10.2.2 183 3/16/2026
10.2.1 146 3/9/2026
10.2.0 142 3/9/2026
10.1.0 297 1/28/2026
10.0.0 306 12/6/2025
9.1.1 914 5/26/2025
9.1.0 257 5/23/2025
9.0.0 217 11/13/2024
8.0.3 317 3/5/2024
7.0.0 538 3/10/2023
6.5.0 535 10/24/2022