Tags: pltrm/PhpSpreadsheet
Tags
1.18.0 - Enhancements to CSV Reader, allowing options to be set when using `IOFactory::load()` with a callback to set delimiter, enclosure, charset etc. [PR PHPOffice#2103](PHPOffice#2103) - See [documentation](https://github.com/PHPOffice/PhpSpreadsheet/blob/master/docs/topics/reading-and-writing-to-file.md#csv-comma-separated-values) for details. - Implemented basic AutoFiltering for Ods Reader and Writer [PR PHPOffice#2053](PHPOffice#2053) - Implemented basic AutoFiltering for Gnumeric Reader [PR #2055](https://github.com/PHPOffice/PhpSpreadsheet/pull/2055) - Improved support for Row and Column ranges in formulae [Issue PHPOffice#1755](PHPOffice#1755) [PR PHPOffice#2028](PHPOffice#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 PHPOffice#1908](PHPOffice#1908) - Support for notContainsText Conditional Style in xlsx [Issue PHPOffice#984](PHPOffice#984) - Use of `nb` rather than `no` as the locale code for Norsk Bokmål. - 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. - Use of `nb` rather than `no` as the locale language code for Norsk Bokmål. - Fixed error in COUPNCD() calculation for end of month [Issue PHPOffice#2116](PHPOffice#2116) - [PR PHPOffice#2119](PHPOffice#2119) - Resolve default values when a null argument is passed for HLOOKUP(), VLOOKUP() and ADDRESS() functions [Issue PHPOffice#2120](PHPOffice#2120) - [PR PHPOffice#2121](PHPOffice#2121) - Fixed incorrect R1C1 to A1 subtraction formula conversion (`R[-2]C-R[2]C`) [Issue PHPOffice#2076](PHPOffice#2076) [PR PHPOffice#2086](PHPOffice#2086) - Correctly handle absolute A1 references when converting to R1C1 format [PR PHPOffice#2060](PHPOffice#2060) - Correct default fill style for conditional without a pattern defined [Issue PHPOffice#2035](PHPOffice#2035) [PR PHPOffice#2050](PHPOffice#2050) - Fixed issue where array key check for existince before accessing arrays in Xlsx.php. [PR PHPOf 10000 fice#1970](PHPOffice#1970) - Fixed issue with quoted strings in number format mask rendered with toFormattedString() [Issue 1972#](PHPOffice#1972) [PR PHPOffice#1978](PHPOffice#1978) - Fixed issue with percentage formats in number format mask rendered with toFormattedString() [Issue 1929#](PHPOffice#1929) [PR PHPOffice#1928](PHPOffice#1928) - Fixed issue with _ spacing character in number format mask corrupting output from toFormattedString() [Issue 1924#](PHPOffice#1924) [PR PHPOffice#1927](PHPOffice#1927) - Fix for [Issue PHPOffice#1887](PHPOffice#1887) - Lose Track of Selected Cells After Save - Fixed issue with Xlsx@listWorksheetInfo not returning any data - Fixed invalid arguments triggering mb_substr() error in LEFT(), MID() and RIGHT() text functions. [Issue PHPOffice#640](PHPOffice#640) - Fix for [Issue PHPOffice#1916](PHPOffice#1916) - Invalid signature check for XML files - Fix change in `Font::setSize()` behavior for PHP8. [PR PHPOffice#2100](PHPOffice#2100)
1.17.1 - 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(). [PHPOffice#1875](PHPOffice#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(). [PHPOffice#1876](PHPOffice#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. [PHPOffice#1754](PHPOffice#1754) - Alignment for ODS Writer [PHPOffice#1796](PHPOffice#1796) - Basic implementation of the PERMUTATIONA() Statistical Function - Formula functions that previously called PHP functions directly are now processed through the Excel Functions classes; resolving issues with PHP8 stricter typing. [PHPOffice#1789](PHPOffice#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()`. - 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. - Nothing. - Avoid Duplicate Titles When Reading Multiple HTML Files.[Issue PHPOffice#1823](PHPOffice#1823) [PR PHPOffice#1829](PHPOffice#1829) - Fixed issue with Worksheet's `getCell()` method when trying to get a cell by defined name. [PHPOffice#1858](PHPOffice#1858) - Fix possible endless loop in NumberFormat Masks [PHPOffice#1792](PHPOffice#1792) - Fix problem resulting from literal dot inside quotes in number format masks. [PR PHPOffice#1830](PHPOffice#1830) - Resolve Google Sheets Xlsx charts issue. Google Sheets uses oneCellAnchor positioning and does not include *Cache values in the exported Xlsx. [PR PHPOffice#1761](PHPOffice#1761) - Fix for Xlsx Chart axis titles mapping to correct X or Y axis label when only one is present. [PR PHPOffice#1760](PHPOffice#1760) - Fix For Null Exception on ODS Read of Page Settings. [PHPOffice#1772](PHPOffice#1772) - Fix Xlsx reader overriding manually set number format with builtin number format. [PR PHPOffice#1805](PHPOffice#1805) - Fix Xlsx reader cell alignment. [PR PHPOffice#1710](PHPOffice#1710) - Fix for not yet implemented data-types in Open Document writer [Issue PHPOffice#1674](PHPOffice#1674) - Fix XLSX reader when having a corrupt numeric cell data type [PR PHPOffice#1664](PHPOffice#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 or `int`) would fail.
1.17.0 - 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(). [PHPOffice#1875](PHPOffice#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(). [PHPOffice#1876](PHPOffice#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. [PHPOffice#1754](PHPOffice#1754) - Alignment for ODS Writer [PHPOffice#1796](PHPOffice#1796) - Basic implementation of the PERMUTATIONA() Statistical Function - Formula functions that previously called PHP functions directly are now processed through the Excel Functions classes; resolving issues with PHP8 stricter typing. [PHPOffice#1789](PHPOffice#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()`. - 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. - Nothing. - Avoid Duplicate Titles When Reading Multiple HTML Files.[Issue PHPOffice#1823](PHPOffice#1823) [PR PHPOffice#1829](PHPOffice#1829) - Fixed issue with Worksheet's `getCell()` method when trying to get a cell by defined name. [PHPOffice#1858](PHPOffice#1858) - Fix possible endless loop in NumberFormat Masks [PHPOffice#1792](PHPOffice#1792) - Fix problem resulting from literal dot inside quotes in number format masks. [PR PHPOffice#1830](PHPOffice#1830) - Resolve Google Sheets Xlsx charts issue. Google Sheets uses oneCellAnchor positioning and does not include *Cache values in the exported Xlsx. [PR PHPOffice#1761](PHPOffice#1761) - Fix for Xlsx Chart axis titles mapping to correct X or Y axis label when only one is present. [PR PHPOffice#1760](PHPOffice#1760) - Fix For Null Exception on ODS Read of Page Settings. [PHPOffice#1772](PHPOffice#1772) - Fix Xlsx reader overriding manually set number format with builtin number format. [PR PHPOffice#1805](PHPOffice#1805) - Fix Xlsx reader cell alignment. [PR PHPOffice#1710](PHPOffice#1710) - Fix for not yet implemented data-types in Open Document writer [Issue PHPOffice#1674](PHPOffice#1674) - Fix XLSX reader when having a corrupt numeric cell data type [PR PHPOffice#1664](PHPOffice#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 or `int`) would fail.
1.16.0 - CSV Reader - Best Guess for Encoding, and Handle Null-string Escape [PHPOffice#1647](PHPOffice#1647) - Updated the CONVERT() function to support all current MS Excel categories and Units of Measure. - Nothing. - Nothing. - Fix for Xls Reader when SST has a bad length [PHPOffice#1592](PHPOffice#1592) - Resolve Xlsx loader issue whe hyperlinks don't have a destination - Resolve issues when printer settings resources IDs clash with drawing IDs - Resolve issue with SLK long filenames [PHPOffice#1612](PHPOffice#1612) - ROUNDUP and ROUNDDOWN return incorrect results for values of 0 [PHPOffice#1627](PHPOffice#1627) - Apply Column and Row Styles to Existing Cells [PHPOffice#1712](PHPOffice#1712) [PR PHPOffice#1721](PHPOffice#1721) - Resolve issues with defined names where worksheet doesn't exist (PHPOffice#1686)[PHPOffice#1686] and [PHPOffice#1723](PHPOffice#1723) - [PR PHPOffice#1742](PHPOffice#1742) - Fix for issue [PHPOffice#1735](PHPOffice#1735) Incorrect activeSheetIndex after RemoveSheetByIndex - [PR PHPOffice#1743](PHPOffice#1743) - Ensure that the list of shared formulae is maintained when an xlsx file is chunked with readFilter[Issue PHPOffice#169](PHPOffice#1669). - Fix for notice during accessing "cached magnification factor" offset [PHPOffice#1354](PHPOffice#1354) - Fix compatibility with ext-gd on php 8 - Prevent XSS through cell comments in the HTML Writer.
1.15.0 ### Added - Implemented Page Order for Xlsx and Xls Readers, and provided Page Settings (Orientation, Scale, Horizontal/Vertical Centering, Page Order, Margins) support for Ods, Gnumeric and Xls Readers [PHPOffice#1559](PHPOffice#1559) - Implementation of the Excel `LOGNORM.DIST()`, `NORM.S.DIST()`, `GAMMA()` and `GAUSS()` functions. [PHPOffice#1588](PHPOffice#1588) - Named formula implementation, and improved handling of Defined Names generally [PHPOffice#1535](PHPOffice#1535) - Defined Names are now case-insensitive - Distinction between named ranges and named formulae - Correct handling of union and intersection operators in named ranges - Correct evaluation of named range operators in calculations - fix resolution of relative named range values in the calculation engine; previously all named range values had been treated as absolute. - Calculation support for named formulae - Support for nested ranges and formulae (named ranges and formulae that reference other named ranges/formulae) in calculations - Introduction of a helper to convert address formats between R1C1 and A1 (and the reverse) - Proper support for both named ranges and named formulae in all appropriate Readers - **Xlsx** (Previously only simple named ranges were supported) - **Xls** (Previously only simple named ranges were supported) - **Gnumeric** (Previously neither named ranges nor formulae were supported) - **Ods** (Previously neither named ranges nor formulae were supported) - **Xml** (Previously neither named ranges nor formulae were supported) - Proper support for named ranges and named formulae in all appropriate Writers - **Xlsx** (Previously only simple named ranges were supported) - **Xls** (Previously neither named ranges nor formulae were supported) - Still not supported, but some parser issues resolved that previously failed to differentiate between a defined name and a function name - **Ods** (Previously neither named ranges nor formulae were supported) - Support for PHP 8.0 ### Changed - Improve Coverage for ODS Reader [PHPOffice#1545](PHPOffice#1545) - Named formula implementation, and improved handling of Defined Names generally [PHPOffice#1535](PHPOffice#1535) - fix resolution of relative named range values in the calculation engine; previously all named range values had been treated as absolute. - Drop $this->spreadSheet null check from Xlsx Writer [PHPOffice#1646](PHPOffice#1646) - Improving Coverage for Excel2003 XML Reader [PHPOffice#1557](PHPOffice#1557) ### Deprecated - **IMPORTANT NOTE:** This Introduces a **BC break** in the handling of named ranges. Previously, a named range cell reference of `B2` would be treated identically to a named range cell reference of `$B2` or `B$2` or `$B$2` because the calculation engine treated then all as absolute references. These changes "fix" that, so the calculation engine now handles relative references in named ranges correctly. This change that resolves previously incorrect behaviour in the calculation may affect users who have dynamically defined named ranges using relative references when they should have used absolute references. ### Removed - Nothing. ### Fixed - PrintArea causes exception [PHPOffice#1544](PHPOffice#1544) - Calculation/DateTime Failure With PHP8 [PHPOffice#1661](PHPOffice#1661) - Reader/Gnumeric Failure with PHP8 [PHPOffice#1662](PHPOffice#1662) - ReverseSort bug, exposed but not caused by PHP8 [PHPOffice#1660](PHPOffice#1660) - Bug setting Superscript/Subscript to false [PHPOffice#1567](PHPOffice#1567)
1.14.1 ### Added - nothing ### Fixed - WEBSERVICE is HTTP client agnostic and must be configured via `Settings::setHttpClient()` [PHPOffice#1562](PHPOffice#1562) - Borders were not complete on rowspanned columns using HTML reader [PHPOffice#1473](PHPOffice#1473) ### Changed - nothing
1.14.0 ### Added - Add support for IFS() logical function [PHPOffice#1442](PHPOffice#1442) - Add Cell Address Helper to provide conversions between the R1C1 and A1 address formats [PHPOffice#1558](PHPOffice#1558) - Add ability to edit Html/Pdf before saving [PHPOffice#1499](PHPOffice#1499) - Add ability to set codepage explicitly for BIFF5 [PHPOffice#1018](PHPOffice#1018) - Added support for the WEBSERVICE function [PHPOffice#1409](PHPOffice#1409) ### Fixed - Resolve evaluation of utf-8 named ranges in calculation engine [PHPOffice#1522](PHPOffice#1522) - Fix HLOOKUP on single row [PHPOffice#1512](PHPOffice#1512) - Fix MATCH when comparing different numeric types [PHPOffice#1521](PHPOffice#1521) - Fix exact MATCH on ranges with empty cells [PHPOffice#1520](PHPOffice#1520) - Fix for Issue [PHPOffice#1516](PHPOffice#1516) (Cloning worksheet makes corrupted Xlsx) [PHPOffice#1530](PHPOffice#1530) - Fix For Issue [PHPOffice#1509](PHPOffice#1509) (Can not set empty enclosure for CSV) [PHPOffice#1518](PHPOffice#1518) - Fix for Issue [PHPOffice#1505](PHPOffice#1505) (TypeError : Argument 4 passed to PhpOffice\PhpSpreadsheet\Writer\Xlsx\Worksheet::writeAttributeIf() must be of the type string) [PHPOffice#1525](PHPOffice#1525) - Fix for Issue [PHPOffice#1495](PHPOffice#1495) (Sheet index being changed when multiple sheets are used in formula) [PHPOffice#1500]((PHPOffice#1500)) - Fix for Issue [PHPOffice#1533](PHPOffice#1533) (A reference to a cell containing a string starting with "#" leads to errors in the generated xlsx.) [PHPOffice#1534](PHPOffice#1534) - Xls Writer - Correct Timestamp Bug [PHPOffice#1493](PHPOffice#1493) - Don't ouput row and columns without any cells in HTML writer [PHPOffice#1235](PHPOffice#1235)
PreviousNext