ToolUp.Reporting.Xlsx 0.22.0

Prefix Reserved
dotnet add package ToolUp.Reporting.Xlsx --version 0.22.0
                    
NuGet\Install-Package ToolUp.Reporting.Xlsx -Version 0.22.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="ToolUp.Reporting.Xlsx" Version="0.22.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="ToolUp.Reporting.Xlsx" Version="0.22.0" />
                    
Directory.Packages.props
<PackageReference Include="ToolUp.Reporting.Xlsx" />
                    
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 ToolUp.Reporting.Xlsx --version 0.22.0
                    
#r "nuget: ToolUp.Reporting.Xlsx, 0.22.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 ToolUp.Reporting.Xlsx@0.22.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=ToolUp.Reporting.Xlsx&version=0.22.0
                    
Install as a Cake Addin
#tool nuget:?package=ToolUp.Reporting.Xlsx&version=0.22.0
                    
Install as a Cake Tool

ToolUp.Reporting.Xlsx

XLSX rendering sub-companion for ToolUp.Reporting: fills .xlsx report templates and returns the filled workbook bytes. Implements IReportRenderer for TemplateFormat.Xlsx and registers through the standard RendererRegistry path.

Two binding modes

1. Token templates. {{key}} tokens in cell text (shared-string or inline-string cells) substitute with the shared placeholder machinery — same syntax and format-hint behaviour as every other renderer. A cell whose entire text is one token bound to an unhinted Number value becomes a native numeric cell, so downstream formulas can consume it; hinted numbers and dates render as formatted text per the hint.

2. Cell-address map. A placeholder key shaped as a sheet-qualified A1 reference — "Sheet1!B7", or "'My Sheet'!B7" for quoted names — writes its value directly into that cell, with no template-side markup. This is the mode for workbooks whose layout was authored visually in a spreadsheet application:

let values =
    Map [
        "Sheet1!B7", NumberValue 41250.0
        "Sheet1!B8", DateValue reportDate
        "Summary!C2", TextValue "Q3 actuals"
    ]

The target cell's style is left untouched, so the template's own number-format string keeps governing how the written value displays (a currency-formatted B7 shows the written number as currency). Dates written this way land as OADate serial numbers; give the target cell a date format in the template.

Keys are classified strictly: only a well-formed Sheet!A1 reference is a cell write; everything else — including keys that merely contain ! — stays an ordinary token key.

Semantics worth knowing

  • Formula cells are never substituted into, and any render that writes values marks the workbook for full recalculation on open, so formulas referencing filled cells re-evaluate in the consumer's spreadsheet application.
  • A cell write naming a sheet the workbook does not contain fails the render with a RendererFailure naming the sheet and key.
  • Image- and Table-kind values are not supported in cell writes (UnsupportedPlaceholderKind); inline table tokens render as tab-separated text lines.
  • Unknown {{key}} tokens pass through unchanged, so schema/template drift stays visible.
  • Invalid template bytes (not a readable .xlsx) surface as RendererFailure, never an exception.

Dependencies

ToolUp.Reporting.Core (the renderer contract) and DocumentFormat.OpenXml (the vendor dependency lives in this package only, per the companion-isolation principle).

Product Compatible and additional computed target framework versions.
.NET 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.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.22.0 38 8/27/2026