State the spreadsheet limit rather than inheriting it - #623
Merged
Conversation
`CoreLoader.host()` states every other thing it wants from `HtmlConfig` - `embedImages`, `relativeResourcePaths`, `textDocumentMargin`, `editable`, `colorScheme` - and left this one to whatever the core's default happened to be. The numbers are unchanged, 10000 rows by 500 columns and trimmed to content first, so nothing renders differently today; they are just numbers this app chose now, and a release that reshuffles `HtmlConfig` cannot move them without a line changing here. Worth stating because of what the limit does: cells past it are dropped and nothing is written in their place, so the `<table>` simply ends and the reader sees a document that looks complete and is not. That is what a user complained about. It is not the max-size case it is often taken for. `sheet_content` only counts a cell that has a child, so an ODS declaring the full 1048576 rows with fifty used ones renders fifty - `spreadsheetLimitByContent` is what handles those. What is left hitting the limit is a sheet that genuinely carries more than 10000 rows, which is an ordinary export. The silent part is the core's to fix, and is opendocument-app/OpenDocument.core#740: translation computes the content extent and the clamped end row and discards both, so it could mark the cut in the output and report the numbers to the embedder. Once it does, this app can put a bar over a cut sheet with a button that renders it in full - `DocumentRequest` already carries exactly this kind of after-the-fact answer next to `editable` and `password`, and `reload` already re-renders from the cached copy without losing the tab or the reading position. None of that is here. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HEyUhuVtnt4pkpq7ffvL9R
andiwand
force-pushed
the
state-the-spreadsheet-limit
branch
from
August 25, 2026 19:09
e9adb8e to
26d1c86
Compare
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.
CoreLoader.host()states every other thing it wants fromHtmlConfig—embedImages,relativeResourcePaths,textDocumentMargin,editable,colorScheme— and left this one to whatever the core's default happened to be. The numbers are unchanged, 10000 rows by 500 columns and trimmed to content first, so nothing renders differently today; they are just numbers this app chose now, and a release that reshufflesHtmlConfigcannot move them without a line changing here.Worth stating because of what the limit does: cells past it are dropped and nothing is written in their place, so the
<table>simply ends and the reader sees a document that looks complete and is not. That is what a user complained about.It is not the max-size case it is often taken for.
sheet_contentonly counts a cell that has a child, so an ODS declaring the full 1048576 rows with fifty used ones renders fifty —spreadsheetLimitByContentis what handles those. What is left hitting the limit is a sheet that genuinely carries more than 10000 rows, which is an ordinary export.The silent part is the core's to fix, and is opendocument-app/OpenDocument.core#740: translation computes the content extent and the clamped end row and discards both, so it could mark the cut in the output and report the numbers to the embedder. Once it does, this app can put a bar over a cut sheet with a button that renders it in full —
DocumentRequestalready carries exactly this kind of after-the-fact answer next toeditableandpassword, andreloadalready re-renders from the cached copy without losing the tab or the reading position. None of that is here.🤖 Generated with Claude Code