CanopyX.Html 0.3.4

There is a newer version of this package available.
See the version list below for details.
dotnet add package CanopyX.Html --version 0.3.4
                    
NuGet\Install-Package CanopyX.Html -Version 0.3.4
                    
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="CanopyX.Html" Version="0.3.4" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="CanopyX.Html" Version="0.3.4" />
                    
Directory.Packages.props
<PackageReference Include="CanopyX.Html" />
                    
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 CanopyX.Html --version 0.3.4
                    
#r "nuget: CanopyX.Html, 0.3.4"
                    
#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 CanopyX.Html@0.3.4
                    
#: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=CanopyX.Html&version=0.3.4
                    
Install as a Cake Addin
#tool nuget:?package=CanopyX.Html&version=0.3.4
                    
Install as a Cake Tool

CanopyX

Interactive views of your own records, written in C#: tree grids, data grids, pivots, boards, calendars, plans, status matrices, change reviews and guided flows. Save a report that opens from disk, serve the view from your app, or render it as a script-free table for email and print.

Live demos · Documentation · Getting started · GitHub

A CanopyX data grid of 1,200 devices grouped by site, with health strips, patch-level bars, sign-in sparklines and a grand total

Pick a view

Tree grid<br>Tree grid<br>CanopyTreeView Data grid<br>Data grid<br>CanopyDataGridView Pivot<br>Pivot<br>CanopyGridPivot
Board<br>Board<br>CanopyBoard Calendar<br>Calendar<br>CanopyCalendar Plan<br>Plan<br>CanopyPlan
Resource timeline<br>Resource timeline<br>CanopyCalendarResources Status matrix<br>Status matrix<br>CanopyMatrix Change review<br>Change review<br>CanopyChangeList, CanopyTextDiff
Dataset compare<br>Dataset compare<br>CanopyDatasetComparer Time slider<br>Time slider<br>CanopyTimeSlider Guided flow<br>Guided flow<br>CanopyFlow
Approval path<br>Approval path<br>CanopyPath Layer stack<br>Layer stack<br>CanopyStack Script-free table<br>Script-free table<br>CanopyStaticHtml

Get started

dotnet add package CanopyX.Html

CanopyX.Html brings in CanopyX and the browser assets. Install CanopyX alone when you only need the model, the bundle writer or the script-free renderer.

A report that opens from disk

using CanopyX;
using CanopyX.Html;

var inventory = new CanopyDataGridView("inventory", "Inventory");
inventory.Columns.Add(new CanopyColumn("name", "Name") { Sortable = true });
inventory.Columns.Add(new CanopyColumn("size", "Size") { Kind = CanopyColumnKind.Number, Sortable = true });

foreach (var (name, bytes) in new[] { ("Archive", 2048L), ("Documents", 512L) })
{
    var row = new CanopyGridRow(name);
    row.Cells["name"] = name;
    row.Cells["size"] = new CanopyCell(bytes) { Text = $"{bytes:N0} bytes" };
    inventory.Rows.Add(row);
}

inventory.SaveHtmlPage("inventory.html");

Open inventory.html in any browser. It carries its own runtime and data, so you can attach it to a ticket or put it on a file share. Numeric values drive sorting; Text is what the reader sees.

A file explorer

var files = new CanopyTreeView("files", "Project files") { Search = new CanopySearchOptions() };
files.Columns.Add(new CanopyColumn("name", "Name") { Sortable = true });
files.Columns.Add(new CanopyColumn("size", "Size") { Kind = CanopyColumnKind.Number, Sortable = true });

var projects = new CanopyNode("projects", "Projects");
var report = new CanopyNode("quarterly-report", "Quarterly report.pdf");
report.Cells["size"] = new CanopyCell(2048L) { Text = "2 KiB" };
projects.Children.Add(report);
files.Roots.Add(projects);

files.SaveHtmlPage("files.html");     // one file
files.SaveHtmlBundle("file-report");  // or a folder that loads branches on demand

A table for email and print

using CanopyX.Rendering;

string table = CanopyStaticHtml.RenderGrid(inventory);

The result is an HTML table with inline styles and no scripts, ready for a mail body, a print layout or Word.

Choose a delivery

You want Write What you get
One file to attach or archive view.SaveHtmlPage("report.html") Data and runtime in a single page
A big tree or grid on a file share view.SaveHtmlBundle("report") A folder whose branches and rows load as the reader scrolls
Millions of database rows CanopyX.Data + CanopyX.AspNetCore Paging, filters, summaries, export and edits answered by your server
A table in an email CanopyStaticHtml.Render(view) A script-free table that survives mail clients

Guides

Requirements

Target Support
.NET 8 and .NET 10 Windows, Linux and macOS
.NET Standard 2.0 Compatible .NET applications
.NET Framework 4.7.2 Windows

The packages add no third-party runtime dependencies, and generating a report needs no Node.js, npm or build step.

Community and license

CanopyX is an Evotec project, licensed under MIT. Questions and feedback are welcome in the Evotec community on Discord. More Evotec projects are at evotec.xyz.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  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 was computed.  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. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 is compatible.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on CanopyX.Html:

Package Downloads
HtmlForgeX.CanopyX

Optional CanopyX integration for HtmlForgeX. Hosts tree grids, flat data grids and materialized report explorers, with document-managed assets, the Evotec theme and script-free grid snapshots.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.3.5 0 11/3/2026
0.3.4 89 10/31/2026
0.3.3 415 10/29/2026
0.3.2 110 10/26/2026
0.3.1 771 10/24/2026
0.3.0 104 10/23/2026
0.2.1 294 10/19/2026
0.1.2 186 10/13/2026
0.1.1 90 10/13/2026
0.1.0 123 10/12/2026

Virtual tree and flat grids, typed query controls, saved views, scoped CSV and clipboard exports, host-governed Office exports and details, and page, fragment, bundle, and asset writers.