Skip to content

XLSX Engine

Spreadsheets with native charts, formulas, and workbook structure.

Open real dashboards, budgets, pipelines, directories, timelines, models, inventory sheets, and surveys generated from JSON. The test here is whether the workbook behaves like Excel output, not whether a spreadsheet-shaped file exists.

Multi-sheet
Multiple worksheets with cross-sheet references
40+ formulas
Type-safe formula builder with SUM, VLOOKUP, IF, and more
5 chart types
Bar, column, line, pie, scatter — editable in Excel
Conditional formatting
Color scales, data bars, icon sets, cell rules
Named tables
Structured tables with headers, totals, and banded rows
Data validation
Dropdowns, date ranges, number constraints
Sheet protection
Password-protect sheets with granular permissions
Streaming render
100K+ rows without memory pressure

[00] Examples

Download ready-made workbooks.

Eight production-quality XLSX examples — SaaS dashboards, budgets, pipelines, directories, timelines, financial models, inventory, and survey results. Download any of them to see what PaperJSX generates.

SaaS Metrics Dashboard

3 sheets
SaaS companies, analytics platforms, investor reporting

A complete SaaS metrics workbook with KPI summary, monthly trends, and chart visualizations. Tracks MRR, ARR, churn, LTV, CAC, and customer count with conditional formatting and cross-sheet formulas.

Summary
MetricCurrentYoY ChangeStatus
MRR$264,000+78%On Track
ARR$3,168,000+78%On Track
Churn1.2%-57%Monitor
LTV$18,400+34%On Track
CAC$2,100-12%On Track
Customers872+42%On Track
{"meta": { "title": "SaaS Metrics Dashboard" },"sheets": [{"name": "Summary","freezePane": { "row": 3 },"rows": [{ "cells": [{ "value": "Metric", "style": { "preset": "header" } },{ "value": "Current", "style": { "preset": "header" } },{ "value": "YoY Change", "style": { "preset": "header" } }] },{ "cells": [{ "value": "MRR" },{ "formula": "'Monthly Data'!B13", "style": { "preset": "currency" } },{ "formula": "(B2-B14)/B14", "style": { "preset": "percentageChange" } }] }],"conditionalFormatting": [{ "ref": "C2:C7", "rules": [{ "type": "cellIs", "operator": "greaterThan", "formula": "0" }] }]},{ "name": "Monthly Data", "tables": [{ "name": "MonthlyMetrics", "ref": "A1:G13" }] },{ "name": "Charts", "charts": [{ "type": "col", "title": "Monthly Revenue" }] }]}
PROIncluded in Pro for XLSX
  • 3 worksheets with cross-sheet references
  • KPI summary with conditional formatting
  • Monthly data table with auto-filter
  • 4 chart types (column, line, pie, scatter)
  • 17 built-in style presets applied
  • Formula builder with SUM, VLOOKUP, IF
Pro and Enterprise
Formula evaluation — computed values appear without Excel recalc
Advanced chart types (waterfall, radar, doughnut)
Quality report with preflight analysis
Template assembly for branded headers
Pro renders formulas server-side so recipients see numbers immediately, even in Google Sheets or PDF export.
Try it yourself
Temporary npm note
Temporary npm note:@paperjsx/json-to-xlsx is being republished to fix a package-manifest issue.Use the sample download above or the MCP server while the republish lands.

[01] JSON to spreadsheet

One payload. One native workbook.

Define sheets, cells, formulas, charts, and styles in a single JSON document. PaperJSX compiles it into a native .xlsx file — no ExcelJS, no OpenXML SDK, no coordinate math.

saas-dashboard.json
{"meta": {"title": "SaaS Metrics Dashboard","creator": "Meridian Labs","company": "Meridian Labs Inc."},"sheets": [{"name": "Summary","freezePane": { "row": 3 },"columns": [{ "width": 18 }, { "width": 14 },{ "width": 12 }, { "width": 14 }],"rows": [{"cells": [{"value": "Metric","style": { "preset": "header" }},{"value": "Current","style": { "preset": "header" }},{"value": "YoY Δ","style": { "preset": "header" }}]},{"cells": [{ "value": "MRR" },{"formula": "'Monthly Data'!B13","style": { "preset": "currency" }},{"formula": "(B2-B14)/B14","style": { "preset": "percentageChange" }}]}],"conditionalFormatting": [{"ref": "C2:C7","rules": [{"type": "cellIs","operator": "greaterThan","formula": "0","style": {"font": { "color": "#006100" },"fill": { "color": "#C6EFCE" }}}]}]},{"name": "Monthly Data","autoFilter": true,"tables": [{"name": "MonthlyMetrics","ref": "A1:G13","style": {"name": "TableStyleMedium2","showRowStripes": true}}],"rows": [{ "cells": [{ "value": "Month" },{ "value": "Revenue" },{ "value": "Costs" },{ "value": "Margin" },{ "value": "Customers" },{ "value": "Churn %" },{ "value": "MoM Growth" }] }]},{"name": "Charts","charts": [{"type": "col","title": "Monthly Revenue","series": [{"name": "'Monthly Data'!$B$1","categories": "'Monthly Data'!$A$2:$A$13","values": "'Monthly Data'!$B$2:$B$13"}],"anchor": { "from": { "col": 0, "row": 0 } }},{"type": "line","title": "Customer Growth","series": [{"name": "'Monthly Data'!$E$1","categories": "'Monthly Data'!$A$2:$A$13","values": "'Monthly Data'!$E$2:$E$13"}],"anchor": { "from": { "col": 8, "row": 0 } }}]}]}
render.ts
10 lines
import { SpreadsheetEngine }from "@paperjsx/json-to-xlsx";import { readFileSync, writeFileSync }from "fs"; const input = JSON.parse(readFileSync("saas-dashboard.json", "utf8")); const buffer = awaitSpreadsheetEngine.render(input); writeFileSync("output.xlsx", buffer);
output.xlsx
3 sheets · 4 charts · 187 KB
VALID

[02] Formula builder

Type-safe formulas. 40+ functions.

Build Excel formulas with a composable, type-safe API. SUM, VLOOKUP, IF, COUNTIF, cross-sheet references — no string concatenation, no typos, no broken cell refs.

Aggregation
Total revenue
F.sum("B2:B13")
=SUM(B2:B13)
Average churn
F.average("F2:F13")
=AVERAGE(F2:F13)
Profitable months
F.countif("D2:D13", ">50%")
=COUNTIF(D2:D13,">50%")
Logic
Growth status
F.if(F.gt("C4", 0), "Growing", "Declining")
=IF(C4>0,"Growing","Declining")
Safe division
F.iferror(F.divide("B2", "C2"), 0)
=IFERROR(B2/C2,0)
Lookup
December revenue
F.vlookup("Dec", "A:G", 2, false)
=VLOOKUP("Dec",A:G,2,FALSE)
Cross-sheet ref
F.ref("Monthly Data", "B13")
='Monthly Data'!B13
Math
Margin %
F.divide(F.subtract("B2", "C2"), "B2")
=(B2-C2)/B2
Annualized
F.round(F.multiply("B2", 12), 0)
=ROUND(B2*12,0)

[03] Styling

Presets, themes, and conditional rules.

17 built-in style presets for common patterns. Full control over fonts, fills, borders, alignment, and number formats. Conditional formatting with color scales, data bars, and cell rules.

17 Built-in style presets
Metricheader
TotalheaderDark
+34%success
1.2%warning
-8%error
$264,000currency
78.4%percentage
$2,409,000total
Conditional formatting rules
Color Scale — churn rate heat map
0.8%
1.2%
1.4%
1.8%
2.1%
2.5%
2.8%
Data Bars — revenue distribution
Enterprise
All Formats
Pro
Cell Rules — threshold alerts
+12%+3%-2%+8%-5%+1%

[04] Structure

Named tables. Data validation. Freeze panes.

Excel tables with auto-filter, banded rows, totals rows, and structured references. Data validation with dropdowns, number constraints, and custom formulas.

Named Table: MonthlyMetricsTableStyleMedium2
MonthRevenueCostsMargin
Jan$148K$89K39.9%
Feb$156K$91K41.7%
Mar$167K$94K43.7%
Apr$172K$96K44.2%
May$181K$98K45.9%
Total$843K$468K44.5%
Auto-filterBanded rowsHeader rowTotals rowStructured references
Data Validation
List
Fiscal year dropdown
"FY2024, FY2025, FY2026"
#
Whole number
Revenue cap
between 0 and 100000
%
Decimal
Churn rate range
between 0 and 1
📅
Date
Report date
after 2024-01-01
fx
Custom
Sheet name length
=LEN(A1)<=31
Input messageError alertDropdownCustom formula

[05] Engine quality

Every render, validated automatically.

Schema validation, OOXML conformance checks, and sub-100ms build times. Every workbook is verified before it reaches your recipients.

Engine performancePASS
52ms render3 sheets156 cells24 formulas4 charts187 KB
Build timelineComplete
0ms
Schema validated
3 sheets · 14 columns · 6 charts
4ms
Styles compiled
17 unique styles · 3 conditional rules
18ms
Sheets serialized
Summary (8ms) + Monthly (6ms) + Charts (4ms)
32ms
Charts rendered
4 chart types · series ranges resolved
48ms
ZIP assembled
28 parts · shared strings deduped
52ms
OOXML validated
Strict conformance · no repair needed
OOXML Validation
OOXML strict conformance
ZIP package integrity
Content type registry complete
Shared string table deduplicated
Style index references valid
Chart data ranges resolved

[06] Paid plans

When XLSX becomes a real product feature.

Pro is enough when native Excel output solves the problem on its own. All Formats starts making sense when the same workflow also has to deliver decks, docs, or PDFs without splitting the stack.

Pro for XLSXCommercial XLSX capabilities
Multi-sheet workbooks
All cell types (string, number, boolean, date, rich text)
Cell styling (fonts, fills, borders, alignment)
17 built-in style presets
Number formatting ($, %, date, custom)
40+ formula builder functions
5 chart types (bar, column, line, pie, scatter)
Conditional formatting (cell rules, color scales, data bars)
Named tables with banded rows and totals
Data validation (list, number, date, custom)
Freeze panes and auto-filter
Merged cells and column widths
Sheet protection
Images (PNG, JPEG)
Comments and hyperlinks
Named ranges
Streaming render (100K+ rows)
Zod schema validation
ProWhen you need more
Formula evaluation
Computed values appear immediately — no Excel recalc
Advanced charts
Area, doughnut, radar, bubble, stock, surface, waterfall
Quality reporting
Preflight analysis catches issues before delivery
Repair pipeline
Auto-fix structural issues for cross-app compatibility
Template assembly
Inject data into existing .xlsx templates with row expansion

Get started

Ship spreadsheets with native charts, not patched exports.

Start with the workbook that already needs native charts, formulas, and real spreadsheet structure, then open it in Excel and see whether it behaves like a deliverable instead of a patched export.

Microsoft ExcelGoogle SheetsLibreOffice CalcNumbers