Repository navigation
feat(office-reader,core): read OpenDocument spreadsheets (.ods) (0.7.0) - #306
Merged
Merged
Conversation
…workbooks (0.7.0) readOds gives the same Workbook readXlsx does: typed values, merges, hidden rows and sheets. Core recognises .ods by extension, content type and the mimetype the file declares, so recipes, Studio and exports work on it unchanged. .odt and .odp are recognised too and refused with what to do. Co-Authored-By: Claude Sonnet 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01TjR6eM2tUwU3NGnKXsmEap
This was referenced Oct 16, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Part of #294 (ODF parsers): the spreadsheet first.
readOdsin@opencraw/office-reader(/odsentry): the sameWorkbookasreadXlsx(typed or text values, merged ranges as A1, hidden rows and sheets, repeated rows and cells expanded, the empty ones the format repeats to its limits dropped, nested tables ignored). Formulas give the stored value; nothing is evaluated..odsby extension, content type and themimetypeentry the file declares (opendocument-sniff), so recipes,extract/table, Studio (grid canvas, picking) and every output work on it unchanged..odt/.odpare recognised too and refused with what to do, instead of being read as text..odsand no longer refuses it.Checked: typecheck, lint, unit tests for office-reader, core, studio, studio-ui, cli, mcp; the editor e2e. The
.odsunit fixture is generated fromincentivi.xlsx(same sheets, merges, hidden rows, an error cell) and a test assertsreadOdsandreadXlsxgive the same sheets, rows, merges and hidden rows, in typed and text mode. In Studio, a recipe over that file shows the grid with merged headers, the hidden sheet and hidden row marked.Not here:
.odtand.odp(the same shape as the docx and pptx readers, next), and files exported by LibreOffice itself were not available to test with: the fixture is built to its layout, not exported from it.🤖 Generated with Claude Code
https://claude.ai/code/session_01TjR6eM2tUwU3NGnKXsmEap