# ClosedXML

**Kind:** Service

**Source:** `Pams/HelperTool/HelperTool.csproj` (line 1)

**Part of:** [Pams](subsystem-pams)

NuGet package dependency

ClosedXML is a NuGet package dependency in `Pams/HelperTool/HelperTool.csproj` for creating and editing Excel workbooks from .NET code. The HelperTool project uses it when working with legacy-format spreadsheet data and exporting workbook content.

## Diagram

```mermaid
sequenceDiagram
    participant HelperTool
    participant ClosedXML
    participant Workbook
    participant FileSystem

    HelperTool->>ClosedXML: Create XLWorkbook
    ClosedXML->>Workbook: Add worksheet and cells
    HelperTool->>ClosedXML: SaveAs(filePath)
    ClosedXML->>FileSystem: Write workbook file
```

## Usage

```ts
import { execFileSync } from "node:child_process";

// ClosedXML is consumed by the .NET HelperTool project.
// Invoke the helper command that generates an Excel workbook.
execFileSync("dotnet", [
  "run",
  "--project",
  "Pams/HelperTool/HelperTool.csproj",
  "--",
  "export-workbook",
  "--output",
  "report.xlsx",
], {
  stdio: "inherit",
});
```

## AI Coding Instructions

- Keep ClosedXML package references in `Pams/HelperTool/HelperTool.csproj`.
- Use ClosedXML from the .NET HelperTool code; TypeScript callers should invoke the HelperTool command or integration layer.
- Dispose workbook objects after saving or reading files.
- Preserve existing handling for legacy-format spreadsheet inputs when changing import or export code.

## Used by

1 reference from 1 file. Each is a place in this repository where the symbol is actually used — go read one rather than trusting an example.

### Injected or called by (1)

- `HelperTool` — `Pams/HelperTool/HelperTool.csproj`:1
