XLSX Benchmarks & Evidence

This page exists for one reason: CmdCal XLSX should be judged with evidence, not category claims.

The numbers below come from the in-repo benchmark and teardown work already captured during the XLSX buildout. They are useful for directionally comparing package shape, local generation speed, and current limits.

They are not a claim that every environment, dataset, or spreadsheet app will behave identically.

Benchmark Environment

  • Date: 2026-03-27
  • Node.js: v22.22.1
  • Platform: darwin arm64
  • Python: 3.13.5

Small Package Comparison

This run used one Revenue sheet with 5 rows and mixed strings, numbers, and dates.

MetricExcelJS BufferExcelJS StreamSheetJSopenpyxlCmdCal
File size (bytes)664065291679150835264
ZIP entry count101010910
styles.xml size1624162411992711609
String cell encodingshared stringsshared stringsraw stringinline stringshared strings

What this shows:

  • CmdCal was already competitive on package size in this run
  • the generated stylesheet was materially smaller than the other JS libraries in this comparison
  • shared strings stayed enabled without inflating the package shape

Large Workbook Smoke Benchmarks

These runs come from the in-package benchmark harness and are best read as local generation evidence, not a final CI reference baseline.

Datasetp50p95maxrows/sec (p95)cells/sec (p95)file size
large-10k330 ms340 ms340 ms29,435588,703845,255 bytes
large-50k1,789 ms1,820 ms1,820 ms27,466549,3254,233,213 bytes
large-100k1,965 ms1,979 ms1,979 ms50,527505,2724,515,979 bytes

Styled Workload Snapshot

The styled benchmark matrix is intentionally stricter, and some targets are still above goal.

Current local highlights:

  • styled 10K×20 generation: about 937.2ms
  • styled 50K×20 generation: about 5055.9ms
  • column-width computation on 50K rows: about 173.1ms

This is useful because it shows where the real remaining local performance work lives:

  • styled serialization overhead
  • styles.xml size efficiency
  • width computation cost

What This Evidence Does Prove

  • CmdCal XLSX is not a toy serializer
  • package shape is already competitive on representative local runs
  • the engine has real benchmarking, preflight, planning, and render-metrics surfaces
  • large deterministic workbook generation is already practical

What This Evidence Does Not Yet Prove

  • final desktop-app compatibility across every target viewer
  • public renderStream(...) performance, because that surface is not public yet
  • full styled benchmark target attainment across the entire Phase 2 matrix

Current Validation Gaps

These are still blocked on real target apps or dedicated environments:

  • Excel for Windows verification
  • Excel for Mac verification
  • Google Sheets import verification
  • Apple Numbers verification
  • LibreOffice round-trip verification on a machine with a working app bundle

How To Reproduce The Shape Of This Evidence

XLSX Benchmarks & Evidence — CmdCal Docs