Skip to content

Limits

Supported inputs

XLSX/XLSM must be ZIP archives with UTF-8 XML and xl/workbook.xml. CSV supports the configured encodings and quoting. XLS, XLSB, encrypted workbooks, formula calculation and writing Excel files are unsupported. Macros/external links are not executed. Formulas supply cached results only; missing caches are null. Missing worksheet rows are not synthesized.

Enforced bounds

Resource Limit
Batch size 1–65536
Excel columns / maximum CSV record width 16384
Excel row number / explicit source row bounds 1–1048576
CSV logical record counter u32 (maximum 4294967295)
Physical header rows 1–32
Shared-strings XML 512 MiB
Workbook metadata XML part 16 MiB
Cell text 2 MiB
XML nesting 128
Expression nesting 64; compilation rejects depth 64
Children in one all/any 10000
Regex UTF-8 bytes 4096
Compiled regex size 8 MiB
Table explanations per scan 16384
Diagnostics per scan 16384
Merged ranges per worksheet 16384
Recovery journal bytes 16384

Exceeding a bound produces an error rather than silently dropping data. Free-discovery header windows and non-overlapping automatic regions are bounded by worksheet width. Explicit sources may overlap intentionally.

CSV transcoding has an 8 KiB input buffer. CSV records and XML tokens can be allocated by the format parser before size checks, so these are not an absolute hostile-input process/RAM cap. Use external process memory/time limits for untrusted files. Shared strings, metadata, active schemas, the largest parsed record and queued batches all consume memory; see streaming.

Exports require disk for staged results and one additional complete output set while verified private snapshots are prepared. Recovery copies stream from file handles; output files are not loaded into RAM. See file safety.

Numeric, currency and temporal ranges are defined in data types, without implying decimal precision for unconfigured floating-point values.