Docs Casual Sheets

ODS round-trip audit

.ods round-trip results vs the same probe set.

Generated by tests/e2e/ods-lossiness-audit.spec.ts. Build a reference ODS with SheetJS, run it through our parser → snapshot → exporter pipeline, re-parse the result with SheetJS, and compare feature-by-feature.

Legend: survived · ⚠️ partial · dropped

Totals: 22 ✅ · 0 ⚠️ · 0 ❌ (of 22 probes)

Parser constraints

  • Current @e965/xlsx ODS parser exposes formulas, merges, hyperlinks, comments, defined names, and number formats.
  • Current probing does not show ODS row heights, column widths, freeze panes, or general font/fill/alignment style objects on the parsed worksheet model.
  • Those features need a separate viability pass before we can claim true round-trip support in our app.

Sheets

ProbeReferenceActualStatus
sheet order + names["Data","Hidden"]["Data","Hidden"]

Values

ProbeReferenceActualStatus
A1 header"Quarter""Quarter"
B2 number1234.561234.56

Formulas

ProbeReferenceActualStatus
B4 SUM formula text"SUM(B2:B3)""SUM(B2:B3)"
B4 cached result1234.811234.81
D4 cross-sheet formula text"Hidden!A1""Hidden!A1"
D4 cross-sheet cached result"shadow""shadow"

Merges

ProbeReferenceActualStatus
A6:B6 mergedtruetrue

Number format

ProbeReferenceActualStatus
B2 currency"\"$\"#,##0.00""\"$\"#,##0.00"
B3 percent"0.00%""0.00%"
ProbeReferenceActualStatus
C2 external hyperlink"https://github.com/schnsrw/sheets""https://github.com/schnsrw/sheets"

Comments

ProbeReferenceActualStatus
D2 comment text"ODS comment""ODS comment"

Defined names

ProbeReferenceActualStatus
RevenueCell"Data!$B$2""Data!$B$2"

Dimensions

ProbeReferenceActualStatus
column A width125125
column B width7777
row 1 height2424
row 2 height1818

Styles · font

ProbeReferenceActualStatus
bold preserved11
font color preserved"#ff0000""#ff0000"

Styles · fill

ProbeReferenceActualStatus
fill color preserved"#00ff00""#00ff00"

Styles · alignment

ProbeReferenceActualStatus
horizontal alignment preserved22
vertical alignment preserved22

Synced from docs/ods-lossiness.md in schnsrw/sheets. To update: edit upstream and re-run npm run sync-docs.