Skip to content

next major

No due date 57% complete
  • Full support for Excel "array functions" in Xlsx Reader/Writer, and the Calculation Engine; and allowing array formulae to be defined in userland code

    See PR #2539 and related documentation for details

  • Modify the Cell Collection so that the index maintains a cell address and an index reference to row/column that can be used for easier filtering and so…

  • Full support for Excel "array functions" in Xlsx Reader/Writer, and the Calculation Engine; and allowing array formulae to be defined in userland code

    See PR #2539 and related documentation for details

  • Modify the Cell Collection so that the index maintains a cell address and an index reference to row/column that can be used for easier filtering and sorting internally; this requires no additional memory compared with the current boolean; but does cause some issued with Named Cells (which currently duplicate entries that can get out of synch). So this change requires a new index for named cells, with an alias pointing to their actual cell reference.

  • Make calendar base year a per-spreadsheet setting rather than a global setting, so that it doesn't create errors when two spreadsheet files are loaded and one uses 1904 mac base year, the other 1900 windows base year - default behaviour (e.g. when no spreadsheet is loaded but formulae are being calculated) should be the Windows 1900 calendar

  • Drop getting/setting cells in the Worksheet by row/column (e.g. setCellValueByColumnAndRow()), but allow the cell address method to accept an array (e.g. [2, 1]) or a new address object as an alternative to the string cellAddress ("A2")?

  • As many other breaking changes as possible.

    • e.g. changing some method names, like the evaluate() method in the Arabic class to a more meaningful toRoman() (and vice versa)
    • Renaming some method arguments to use more meaningful names, making their purpose more intuitive, particularly if used as named arguments with PHP 8.0+
    • Eliminate underscores in property and method names, a throwback to earlier versions of PHP before visibility could be set on properties and methods
    • Use of Enum types where appropriate (e.g. many of the Style settings), probably using a library like myclabs/php-enum until we're in a position to use true PHP 8.1 Enums