sheetcellrange, sheetcellranges, inheritance query

Admittedly I’m new to OOP and don’t know Java but what little I believe I know leaves me with questions.
SheetCellRanges has getCells() but SheetCellRange doesn’t.

SheetCell has FormulaLocal but SheetCellRange doesn’t.

I would expect SheetCellRange to inherit from SheetCell and SheetCellRanges to inherit from SheetCellRange but that doesn’t appear to be the case.

Would someone please explain the rational behind these choices?


The applied paradigm of programming and the structure of the API were defined long ago and since only a few services or interfaces were added. Of course, long-term stability is a main concern insofar.
I don’t know if there are many people in the world pervasively informed about the rationales behind all the design decisions - and surely there are also doubtable or hardly justified ones.
Anyway you will need to take things as they are, I’m afraid.
Concerning the examples:
Inheritance seems to be basiically different from your concepts in the LibO API. See LibreOffice: com::sun::star::sheet Module Reference (e.g.)
It’s very flexible, but the idea of how to supply services and interfaces isn’t simple - and (imo) there are cases where it isn’t consistently applied.

‘Take things as they are’, I do that at least until I figure how to fix things, of course some of my fixes turn out not to be fixes.

Thanks for the link, lots to absorb there.

Rationales lost in history is not a surprise.

Be Well,


SheetCellRange, SheetCell and SheetCellRanges are services, where each service exports one or more interfaces.
In addition to the API docs Lupp already linked there’s the still valid Developer Guide, Working with Spreadsheet Documents, see chapters in the right sidebar there. (and that wiki is functional again now after years of brokenness, but links in there lead to the old API documentation).

Thanks for the pointer.
I’m new to LO and still studying.