feat(bindings): Sheet::set_cell_style in python, java, objective-c and npm - #939
Merged
Merged
Conversation
andiwand
force-pushed
the
feat/sheet-format-editor
branch
from
September 28, 2026 19:35
5531ba5 to
716e5cf
Compare
…d npm Python binds Sheet.set_cell_style as it stands. Java and Objective-C get Sheet.setCellStyle and -[ODRSheet setCellStyle:textStyle:atColumn:row: error:], with TableCellStyle constructible and its fields writable, so a caller builds the delta. A padding or a border is refused before it reaches C++. The npm package's setCellStyle(sheet, column, row, style) takes the object that the page's odr.editing.format takes, and replays it through the envelope, so the parser of the wire checks it. The Java and Swift suites take ods/span.ods from OpenDocument.test as a fixture beside mixed-layout.odt. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NXnz6EZY8YpyiyyE1GpsWy
The text eol rule rewrote its CRLF bytes, which breaks the zip on a fresh checkout. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NXnz6EZY8YpyiyyE1GpsWy
The python refusal test now expects `pyodr.UnsupportedOperation`, so a wrong error no longer passes it. The npm `CellStyle` builds on `TextStyle` without `highlight` and does not repeat its keys. The changelog entry is shorter. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Tigcf9he3w1aHfNPJoEGsd
andiwand
force-pushed
the
feat/bindings-cell-style
branch
from
September 28, 2026 19:43
fafe04e to
5f61f1b
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.
🤖 Generated with Claude Code
Step 5, the last one, of the cell-formatting plan (#934).
Change
Sheet.set_cell_style(column, row, cell_style, text_style);TableCellStylewas already constructibleSheet.setCellStyle(column, row, TableCellStyle, TextStyle);TableCellStylegets a public constructor and writable fields, asTextStyledid in #898-[ODRSheet setCellStyle:textStyle:atColumn:row:error:],sheet.setStyle(_:textStyle:column:row:)in Swift;ODRTableCellStylegetsinitand writable propertiesDocument.setCellStyle(sheet, column, row, style)with aCellStyletype; the object is the oneodr.editing.formattakes, replayed through the envelope so the parser of the wire checks itJava and Objective-C refuse a padding or a border before C++, since no engine writes one. The Java and Swift suites take
ods/span.odsfrom OpenDocument.test as a fixture besidemixed-layout.odt..gitattributesmarks*.odsbinary, as it marks*.odt: the* text eol=lfrule would rewrite the CRLF bytes inside the zip.ODRStyle.mmandjni_style.cpphad lost their<odr/exceptions.hpp>include, which the new refusal needs again.Proof
Each binding gets a test that styles
A1(a fill, centre alignment and bold), saves, reopens and reads the fill and the bold back, and a test for the refusal: