PhpSpreadsheet v1.18.0 Release Notes

Release Date: 2021-05-31 // 5 months ago
  • โž• Added

    • โœจ Enhancements to CSV Reader, allowing options to be set when using IOFactory::load() with a callback to set delimiter, enclosure, charset etc. PR #2103 - See documentation for details.
    • Implemented basic AutoFiltering for Ods Reader and Writer PR #2053
    • Implemented basic AutoFiltering for Gnumeric Reader PR #2055
    • ๐Ÿ‘Œ Improved support for Row and Column ranges in formulae Issue #1755 PR #2028
    • ๐ŸŒ Implemented URLENCODE() Web Function
    • โœ… Implemented the CHITEST(), CHISQ.DIST() and CHISQ.INV() and equivalent Statistical functions, for both left- and right-tailed distributions.
    • ๐Ÿ‘Œ Support for ActiveSheet and SelectedCells in the ODS Reader and Writer. PR #1908
    • ๐Ÿ‘Œ Support for notContainsText Conditional Style in xlsx Issue #984

    ๐Ÿ”„ Changed

    • ๐Ÿ‘‰ Use of nb rather than no as the locale code for Norsk Bokmรฅl.

    ๐Ÿ—„ Deprecated

    • ๐Ÿ‘€ All Excel Function implementations in Calculation\Database, Calculation\DateTime, Calculation\Engineering, Calculation\Financial, Calculation\Logical, Calculation\LookupRef, Calculation\MathTrig, Calculation\Statistical, Calculation\TextData and Calculation\Web have been moved to dedicated classes for individual functions or groups of related functions. See the docblocks against all the deprecated methods for details of the new methods to call instead. At some point, these old classes will be deleted.

    โœ‚ Removed

    • ๐Ÿ‘‰ Use of nb rather than no as the locale language code for Norsk Bokmรฅl.

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fixed error in COUPNCD() calculation for end of month Issue #2116 - PR #2119
    • 0๏ธโƒฃ Resolve default values when a null argument is passed for HLOOKUP(), VLOOKUP() and ADDRESS() functions Issue #2120 - PR #2121
    • ๐Ÿ›  Fixed incorrect R1C1 to A1 subtraction formula conversion (R[-2]C-R[2]C) Issue #2076 PR #2086
    • Correctly handle absolute A1 references when converting to R1C1 format PR #2060
    • ๐Ÿ’… Correct default fill style for conditional without a pattern defined Issue #2035 PR #2050
    • ๐Ÿ›  Fixed issue where array key check for existince before accessing arrays in Xlsx.php. PR #1970
    • ๐Ÿ›  Fixed issue with quoted strings in number format mask rendered with toFormattedString() Issue 1972# PR #1978
    • ๐Ÿ›  Fixed issue with percentage formats in number format mask rendered with toFormattedString() Issue 1929# PR #1928
    • ๐Ÿ›  Fixed issue with _ spacing character in number format mask corrupting output from toFormattedString() Issue 1924# PR #1927
    • ๐Ÿ›  Fix for Issue #1887 - Lose Track of Selected Cells After Save
    • ๐Ÿ›  Fixed issue with [email protected] not returning any data
    • ๐Ÿ›  Fixed invalid arguments triggering mb_substr() error in LEFT(), MID() and RIGHT() text functions. Issue #640
    • ๐Ÿ›  Fix for Issue #1916 - Invalid signature check for XML files
    • ๐Ÿ›  Fix change in Font::setSize() behavior for PHP8. PR #2100

Previous changes from v1.17.1

  • โž• Added

    • Implementation of the Excel AVERAGEIFS() functions as part of a restructuring of Database functions and Conditional Statistical functions.
    • ๐Ÿ‘Œ Support for date values and percentages in query parameters for Database functions, and the IF expressions in functions like COUNTIF() and AVERAGEIF(). #1875
    • ๐Ÿ‘Œ Support for booleans, and for wildcard text search in query parameters for Database functions, and the IF expressions in functions like COUNTIF() and AVERAGEIF(). #1876
    • Implemented DataBar for conditional formatting in Xlsx, providing read/write and creation of (type, value, direction, fills, border, axis position, color settings) as DataBar options in Excel. #1754
    • Alignment for ODS Writer #1796
    • Basic implementation of the PERMUTATIONA() Statistical Function

    ๐Ÿ”„ Changed

    • Formula functions that previously called PHP functions directly are now processed through the Excel Functions classes; resolving issues with PHP8 stricter typing. #1789

    The following MathTrig functions are affected: ABS(), ACOS(), ACOSH(), ASIN(), ASINH(), ATAN(), ATANH(), COS(), COSH(), DEGREES() (rad2deg), EXP(), LN() (log), LOG10(), RADIANS() (deg2rad), SIN(), SINH(), SQRT(), TAN(), TANH().

    One TextData function is also affected: REPT() (str_repeat).

    • ๐Ÿ“‡ formatAsDate correctly matches language metadata, reverting c55272e
    • Formulae that previously crashed on sub function call returning excel error value now return said value. The following functions are affected CUMPRINC(), CUMIPMT(), AMORLINC(), AMORDEGRC().
    • Adapt some function error return value to match excel's error. The following functions are affected PPMT(), IPMT().

    ๐Ÿ—„ Deprecated

    • Calling many of the Excel formula functions directly rather than through the Calculation Engine.

    The logic for these Functions is now being moved out of the categorised Database, DateTime, Engineering, Financial, Logical, LookupRef, MathTrig, Statistical, TextData and Web classes into small, dedicated classes for individual functions or related groups of functions.

    This makes the logic in these classes easier to maintain; and will reduce the memory footprint required to execute formulae when calling these functions.

    โœ‚ Removed

    • Nothing.

    ๐Ÿ›  Fixed

    • Avoid Duplicate Titles When Reading Multiple HTML Files.Issue #1823 PR #1829
    • ๐Ÿ›  Fixed issue with Worksheet's getCell() method when trying to get a cell by defined name. #1858
    • ๐Ÿ›  Fix possible endless loop in NumberFormat Masks #1792
    • ๐Ÿ›  Fix problem resulting from literal dot inside quotes in number format masks. PR #1830
    • Resolve Google Sheets Xlsx charts issue. Google Sheets uses oneCellAnchor positioning and does not include *Cache values in the exported Xlsx. PR #1761
    • ๐Ÿ›  Fix for Xlsx Chart axis titles mapping to correct X or Y axis label when only one is present. PR #1760
    • ๐Ÿ›  Fix For Null Exception on ODS Read of Page Settings. #1772
    • ๐Ÿ›  Fix Xlsx reader overriding manually set number format with builtin number format. PR #1805
    • ๐Ÿ›  Fix Xlsx reader cell alignment. PR #1710
    • ๐Ÿ›  Fix for not yet implemented data-types in Open Document writer Issue #1674
    • ๐Ÿ›  Fix XLSX reader when having a corrupt numeric cell data type PR #1664
    • ๐Ÿ›  Fix on CUMPRINC(), CUMIPMT(), AMORLINC(), AMORDEGRC() usage. When those functions called one of YEARFRAC(), PPMT(), IPMT() and they would get back an error value (represented as a string), trying to use numeral operands (+, /, -, *) on said return value and a number (float orint`) would fail.