Vestigium.Helpers.ClosedXml 1.0.1

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

Vestigium.Helpers.ClosedXml

ClosedXML write-first Excel (.xlsx) for Vestigium hosts. One session owns one workbook. Sheets, tables, named ranges, pictures, and queued charts go through that session.

It does not spawn Excel. ClosedXML types stay behind the session. Charts paints WPF; this library writes workbooks.

Identity

Field Value
Package Vestigium.Helpers.ClosedXml 1.0.0
TFM net10.0
APPID ClosedXml (ClosedXmlCatalog.AppId)
EVENTID Reserved 11000–11499 (used through 11090)
Depends on ClosedXML 0.105.1, Vestigium.Helpers.Analytics, Vestigium.Logging
License MIT
Contract 002 -- Requirements Document

Consume

<PackageReference Include="Vestigium.Helpers.ClosedXml" Version="1.0.0" />
using Vestigium.Helpers.Analytics;
using Vestigium.Helpers.ClosedXml;

var series = NumericSeries.From(rtts, "rtt-ms");
using var book = WorkbookHelper.Create("RTT", appId: "PingIQ");
WorkbookHelper.WriteSeries(book, series);
var path = book.SaveAs(WorkbookHelper.NewExportPath("PingIQ", "rtt"));

Default export folder: Desktop\Vestigium\Exports\{appId}\.

Surface

Call Returns Notes
WorkbookHelper.Create(firstSheet?, appId?) WorkbookSession New in-memory workbook.
WorkbookHelper.Open(path, appId?) WorkbookSession Existing .xlsx.
WorkbookHelper.OpenOrCreate(path, …) WorkbookSession Opens if present, else creates and saves.
WorkbookHelper.WriteSeries(book, series) void Analytics snapshot onto standard sheets.
WorkbookHelper.NewExportPath(appId, stem?) string Timestamped path under the export folder.
book.Sheet(name) SheetSession Get or add. Names are sanitized.
sheet.WriteTable(...) void Formula-like text is neutralized. Non-finite numbers rejected.
book.AddChart(chart) void Queued; embedded on Save / SaveAs when IncludeCharts.
book.Save() / SaveAs(path) / SaveTo(stream) path or void Creates parent directories.
ClosedXmlCatalog.Register(cfg) void Host-only, during VestigiumLogger.Initialize.

Rules that do not move

  • Write-first .xlsx. This is not Microsoft Excel automation.
  • ClosedXML is not thread-safe. One session, one owner.
  • A workbook keeps at least one worksheet.
  • Formula-looking cell text is neutralized. Non-finite numbers are rejected.
  • Self-merge is rejected.
  • The library never calls VestigiumLogger.Initialize.

Logging

VestigiumLogger.Initialize(cfg =>
{
    cfg.AppId = "PingIQ";                       // host APPID, not ClosedXml
    cfg.LogDirectory = logDir;
    AnalyticsCatalog.Register(cfg);
    ClosedXmlCatalog.Register(cfg);
});

Writes are no-ops until the host initializes. JSONL lands at %ProgramData%\Vestigium\Logs\{host-APPID}\. Correlation id is SessionId.

Named events live in EventCatalog/closedxml.json.

Numbers: Vestigium.Helpers.Analytics. Disk log: Vestigium.Logging.

Long-form documents live in Vestigium.Documentation / Helpers / ClosedXml. Folders, not files — current revision sits inside the folder.

Area GitHub
000 -- Archived folder
001 -- Implementation Plan folder
002 -- Requirements Document folder
003 -- Design Document folder
004 -- Developers Guide folder
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
1.0.1 98 10/6/2026
1.0.0 84 10/5/2026