What you can do with each format
The format matrix: where opening and editing are full, where they're partial, where the file saves to, and which limits are written into the contract.
The table is built from the format registry inside the core: it’s not a promise in words, but what the core reports about itself. Here you can see how one format differs from another, even before the pilot.
Full — works with no caveats. Partial — works within declared bounds; the rest is rejected with a reason. In the “Save” column: to the same file — writes back to the source format; export only — you can save, but only to a different file; the source format isn’t written back; not possible — there’s no saving at all; a workbook from such a file has to be exported to a different format.
Precision answers the question “partial — relative to what?”: the core states which reference model it treats this format by. The benchmark is benchmark, meaning XLSX; the other classes are described relative to it. The package carries over whole — whatever the core doesn’t parse in the file, it doesn’t touch either: the unparsed parts go back exactly as they were. Like a template — the file opens and edits like a workbook, but stays a template, so edits leave through export to a regular file, and the template itself is never rewritten. Binary compatibility, XML compatibility, and the ODF family — their own storage method, which doesn’t match XLSX; exactly what the core gives up for these formats is stated in the contract column of the same row. Delimited text — the format holds a single grid of values: there’s simply no room in it for a second sheet, formulas, or formatting.
FODS — flat ODS: the same OpenDocument format, but as a single XML file instead of a zip package. For documents, its counterpart is XODT.
| Format | Precision | Open | Edit | Save | How it saves | What’s written into the contract |
|---|---|---|---|---|---|---|
| XLSX | benchmark | full | full | to the same file | native format both ways | macros aren’t executed, VBA isn’t interpreted, there’s no shared M-language runtime, and Power Query isn’t a full match |
| XLSM | package carries over whole | full | partial | to the same file | native format, unparsed parts carry over as-is | macros aren’t executed, VBA isn’t interpreted, there’s no shared M-language runtime, and Power Query isn’t a full match |
| XLSB | binary compatibility | full | partial | to the same file | native format both ways | — |
| XLTX | like a template | full | partial | export only | native format both ways | macros aren’t executed, VBA isn’t interpreted, there’s no shared M-language runtime, and Power Query isn’t a full match |
| XLTM | like a template | full | partial | export only | native format, unparsed parts carry over as-is | macros aren’t executed, VBA isn’t interpreted, there’s no shared M-language runtime, and Power Query isn’t a full match |
| XLS | binary compatibility | full | partial | export only | export to a canonical form | macros aren’t executed, VBA isn’t interpreted, there’s no saving back to the same format, and styles aren’t a full match |
| ODS | ODF family | full | partial | to the same file | native format both ways | styles aren’t a full match |
| FODS | ODF family | full | partial | partial | native format both ways | no saving to the same format, styles don’t match completely |
| SpreadsheetML 2003 | XML compatibility | full | partial | export only | export to a canonical form | no saving back to the same format |
| CSV | delimited text | partial | partial | to the same file | native format both ways | the format holds a single sheet |
| TSV | delimited text | partial | partial | to the same file | native format both ways | the format holds a single sheet |
| TXT | delimited text | partial | partial | to the same file | native format both ways | the format holds a single sheet |
| HTML | delimited text | partial | partial | not possible | — | the format holds a single sheet |