From Peter Sestoft's book Spreadsheet Implementation. Section 2.1.1, p28.
A subset of the core concepts that seem immediately relevant to us:
- A workbook of class Workbook is a collection of sheets
- A sheet of class Sheet is a rectangular array (ok, not how we are thinking of it?), each element could contain null or a cell
- A (non-null) cell of class Cell which could be a constant (he's got more classes here), a formula (that's got its own class, see below), an array formula (I'm trying to pretend these don't exist right now). (This is where he says a cell could also contain info about formatting but in his world it does not.)
- A formula of class Formula consists of an expression (that's got a class), a cached value (again, a class), a workbook reference of class Workbook, a state (I think this has to do with recalculation and cell-to-cell depedencies).
- An expression of class Expr could be a constant (number, text), a static error, an object of class CellRef, an object of class CellArea, or a call to a function or operator (of class FunCall)
- A raref of class RARef, which is a cell reference. A four-tuple:
(colAbs, colRef, rowAbs, rowRef) where colAbs and rowAbs are logical indicators whether the column and row references coRefl and rowRef are absolute vs. relative.
- A cell address of class CellAddr is an absolute location of a cell within a sheetl, i.e.
(row, col). For Sestoft, it's zero-based.
- A single cell reference of class CellRef is an object of class RARef and, optionally, a worksheet reference.
- A cell area reference of class CellArea consists of two objects of class RARef (upper left, lower right of a rectangle) and, optionally, a common worksheet reference.
From Peter Sestoft's book Spreadsheet Implementation. Section 2.1.1, p28.
A subset of the core concepts that seem immediately relevant to us:
(colAbs, colRef, rowAbs, rowRef)wherecolAbsandrowAbsare logical indicators whether the column and row referencescoReflandrowRefare absolute vs. relative.(row, col). For Sestoft, it's zero-based.