DownloadChangelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog
and this project adheres to Semantic Versioning.
[1.9.0] - 2019-08-17
Added
-
When <br> appears in a table cell, set the cell to wrap #1071 and #1070
-
Add MAXIFS, MINIFS, COUNTIFS and Remove MINIF, MAXIF #1056
-
HLookup needs an ordered list even if range_lookup is set to false #1055 and #1076
-
Improve performance of IF function calls via ranch pruning to avoid resolution of every branches #844
-
MATCH function supports `*?~` Excel functionality, when match_type=0 #1116
-
Allow HTML Reader to accept HTML as a string #1136
Fixed
-
Fix to AVERAGEIF() function when called with a third argument
-
Eliminate duplicate fill none style entries #1066
-
Fix number format masks containing literal (non-decimal point) dots #1079
-
Fix number format masks containing named colours that were being misinterpreted as date formats; and add support for masks that fully replace the value with a full text string #1009
-
Stricter-typed comparison testing in COUNTIF() and COUNTIFS() evaluation #1046
-
COUPNUM should not return zero when settlement is in the last period #1020 and #1021
-
Fix handling of named ranges referencing sheets with spaces or "!" in their title
-
Cover `getSheetByName()` with tests for name with quote and spaces #739
-
Best effort to support invalid colspan values in HTML reader - #878
-
Fixes incorrect rows deletion #868
-
MATCH function fix (value search by type, stop search when match_type=-1 and unordered element encountered) #1116
-
Fix `getCalculatedValue()` error with more than two INDIRECT #1115
-
Writer\Html did not hide columns #985
[1.8.2] - 2019-07-08
Fixed
-
Uncaught error when opening ods file and properties aren't defined #1047
-
Xlsx Reader Cell datavalidations bug #1052
[1.8.1] - 2019-07-02
Fixed
-
Allow nullable theme for Xlsx Style Reader class #1043
[1.8.0] - 2019-07-01
Security Fix (CVE-2019-12331)
Added
-
Added support for the SWITCH function #963 and #983
-
Add accounting number format style #974
Fixed
-
Whitelist `tsv` extension when opening CSV files #429
-
Fix a SUMIF warning with some versions of PHP when having different length of arrays provided as input #873
-
Fix incorrectly handled backslash-escaped space characters in number format
[1.7.0] - 2019-05-26
-
Added support for inline styles in Html reader (borders, alignment, width, height)
-
QuotedText cells no longer treated as formulae if the content begins with a `=`
-
Clean handling for DDE in formulae
Fixed
-
Fix handling for escaped enclosures and new lines in CSV Separator Inference
-
Fix MATCH an error was appearing when comparing strings against 0 (always true)
-
Fix wrong calculation of highest column with specified row #700
-
Fix VLOOKUP
-
Fix return type hint
[1.6.0] - 2019-01-02
Added
-
Refactored Matrix Functions to use external Matrix library
-
Possibility to specify custom colors of values for pie and donut charts #768
Fixed
-
Improve XLSX parsing speed if no readFilter is applied #772
-
Fix column names if read filter calls in XLSX reader skip columns #777
-
XLSX reader can now ignore blank cells, using the setReadEmptyCells(false) method. #810
-
Fix LOOKUP function which was breaking on edge cases #796
-
Fix VLOOKUP with exact matches #809
-
Support COUNTIFS multiple arguments #830
-
Change `libxml_disable_entity_loader()` as shortly as possible #819
-
Improved memory usage and performance when loading large spreadsheets #822
-
Improved performance when loading large spreadsheets #825
-
Improved performance when loading large spreadsheets #824
-
Fix color from CSS when reading from HTML #831
-
Fix infinite loop when reading invalid ODS files #832
-
Fix time format for duration is incorrect #666
-
Fix iconv unsupported `//IGNORE//TRANSLIT` on IBM i #791
Changed
-
`master` is the new default branch, `develop` does not exist anymore
[1.5.2] - 2018-11-25
Security
-
Improvements to the design of the XML Security Scanner #771
[1.5.1] - 2018-11-20
Security
-
Fix and improve XXE security scanning for XML-based and HTML Readers #771
Added
-
Support page margin in mPDF #750
Fixed
-
Support numeric condition in SUMIF, SUMIFS, AVERAGEIF, COUNTIF, MAXIF and MINIF #683
-
SUMIFS containing multiple conditions #704
-
Csv reader avoid notice when the file is empty #743
-
Fix print area parser for XLSX reader #734
-
Support overriding `DefaultValueBinder::dataTypeForValue()` without overriding `DefaultValueBinder::bindValue()` #735
-
Mpdf export can exceed pcre.backtrack_limit #637
-
Fix index overflow on data values array #748
[1.5.0] - 2018-10-21
Added
-
PHP 7.3 support
-
Add the DAYS() function #594
Fixed
-
Sheet title can contain exclamation mark #325
-
Xls file cause the exception during open by Xls reader #402
-
Skip non numeric value in SUMIF #618
-
OFFSET should allow omitted height and width #561
-
Correctly determine delimiter when CSV contains line breaks inside enclosures #716
[1.4.1] - 2018-09-30
Fixed
-
Remove locale from formatting string #644
-
Allow iterators to go out of bounds with prev #587
-
Fix warning when reading xlsx without styles #631
-
Fix broken sample links on windows due to $baseDir having backslash #653
[1.4.0] - 2018-08-06
Added
-
Add excel function EXACT(value1, value2) support #595
-
Support workbook view attributes for Xlsx format #523
-
Read and write hyperlink for drawing image #490
-
Added calculation engine support for the new bitwise functions that were added in MS Excel 2013
- BITAND() Returns a Bitwise 'And' of two numbers
- BITOR() Returns a Bitwise 'Or' of two number
- BITXOR() Returns a Bitwise 'Exclusive Or' of two numbers
- BITLSHIFT() Returns a number shifted left by a specified number of bits
- BITRSHIFT() Returns a number shifted right by a specified number of bits
-
Added calculation engine support for other new functions that were added in MS Excel 2013 and MS Excel 2016
- Text Functions
- CONCAT() Synonym for CONCATENATE()
- NUMBERVALUE() Converts text to a number, in a locale-independent way
- UNICHAR() Synonym for CHAR() in PHPSpreadsheet, which has always used UTF-8 internally
- UNIORD() Synonym for ORD() in PHPSpreadsheet, which has always used UTF-8 internally
- TEXTJOIN() Joins together two or more text strings, separated by a delimiter
- Logical Functions
- XOR() Returns a logical Exclusive Or of all arguments
- Date/Time Functions
- ISOWEEKNUM() Returns the ISO 8601 week number of the year for a given date
- Lookup and Reference Functions
- FORMULATEXT() Returns a formula as a string
- Financial Functions
- PDURATION() Calculates the number of periods required for an investment to reach a specified value
- RRI() Calculates the interest rate required for an investment to grow to a specified future value
- Engineering Functions
- ERF.PRECISE() Returns the error function integrated between 0 and a supplied limit
- ERFC.PRECISE() Synonym for ERFC
- Math and Trig Functions
- SEC() Returns the secant of an angle
- SECH() Returns the hyperbolic secant of an angle
- CSC() Returns the cosecant of an angle
- CSCH() Returns the hyperbolic cosecant of an angle
- COT() Returns the cotangent of an angle
- COTH() Returns the hyperbolic cotangent of an angle
- ACOT() Returns the cotangent of an angle
- ACOTH() Returns the hyperbolic cotangent of an angle
-
Refactored Complex Engineering Functions to use external complex number library
-
Added calculation engine support for the new complex number functions that were added in MS Excel 2013
- IMCOSH() Returns the hyperbolic cosine of a complex number
- IMCOT() Returns the cotangent of a complex number
- IMCSC() Returns the cosecant of a complex number
- IMCSCH() Returns the hyperbolic cosecant of a complex number
- IMSEC() Returns the secant of a complex number
- IMSECH() Returns the hyperbolic secant of a complex number
- IMSINH() Returns the hyperbolic sine of a complex number
- IMTAN() Returns the tangent of a complex number
Fixed
-
Fix ISFORMULA() function to work with a cell reference to another worksheet
-
Xlsx reader crashed when reading a file with workbook protection #553
-
Cell formats with escaped spaces were causing incorrect date formatting #557
-
Could not open CSV file containing HTML fragment #564
-
Exclude the vendor folder in migration #481
-
Chained operations on cell ranges involving borders operated on last cell only #428
-
Avoid memory exhaustion when cloning worksheet with a drawing #437
-
Migration tool keep variables containing $PHPExcel untouched #598
-
Rowspans/colspans were incorrect when adding worksheet using loadIntoExisting #619
[1.3.1] - 2018-06-12
Fixed
-
Ranges across Z and AA columns incorrectly threw an exception #545
[1.3.0] - 2018-06-10
Added
-
Support to read Xlsm templates with form elements, macros, printer settings, protected elements and back compatibility drawing, and save result without losing important elements of document #435
-
Expose sheet title maximum length as `Worksheet::SHEET_TITLE_MAXIMUM_LENGTH` #482
-
Allow escape character to be set in CSV reader #492
Fixed
-
Subtotal 9 in a group that has other subtotals 9 exclude the totals of the other subtotals in the range #332
-
`Helper\Html` support UTF-8 HTML input #444
-
Xlsx loaded an extra empty comment for each real comment #375
-
Xlsx reader do not read rows and columns filtered out in readFilter at all #370
-
Make newer Excel versions properly recalculate formulas on document open #456
-
`Coordinate::extractAllCellReferencesInRange()` throws an exception for an invalid range #519
-
Fixed parsing of conditionals in COUNTIF functions #526
-
Corruption errors for saved Xlsx docs with frozen panes #532
[1.2.1] - 2018-04-10
Fixed
-
Plain text and richtext mixed in same cell can be read #442
[1.2.0] - 2018-03-04
Added
-
HTML writer creates a generator meta tag #312
-
Support invalid zoom value in XLSX format #350
-
Support for `_xlfn.` prefixed functions and `ISFORMULA`, `MODE.SNGL`, `STDEV.S`, `STDEV.P` #390
Fixed
-
Avoid potentially unsupported PSR-16 cache keys #354
-
Check for MIME type to know if CSV reader can read a file #167
-
Use proper ? symbol for currency format #379
-
Read printing area correctly when skipping some sheets #371
-
Avoid incorrectly overwriting calculated value type #394
-
Select correct cell when calling freezePane #389
-
`setStrikethrough()` did not set the font #403
[1.1.0] - 2018-01-28
Added
-
Support for PHP 7.2
-
Support cell comments in HTML writer and reader #308
-
Option to stop at a conditional styling, if it matches (only XLSX format) #292
-
Support for line width for data series when rendering Xlsx #329
Fixed
-
Better auto-detection of CSV separators #305
-
Support for shape style ending with `;` #304
-
Freeze Panes takes wrong coordinates for XLSX #322
-
`COLUMNS` and `ROWS` functions crashed in some cases #336
-
Support XML file without styles #331
-
Cell coordinates which are already a range cause an exception #319
[1.0.0] - 2017-12-25
Added
-
Support to write merged cells in ODS format #287
-
Able to set the `topLeftCell` in freeze panes #261
-
Support `DateTimeImmutable` as cell value
-
Support migration of prefixed classes
Fixed
-
Can read very small HTML files #194
-
Written DataValidation was corrupted #290
-
Date format compatible with both LibreOffice and Excel #298
BREAKING CHANGE
-
Constant `TYPE_DOUGHTNUTCHART` is now `TYPE_DOUGHNUTCHART`.
[1.0.0-beta2] - 2017-11-26
Added
-
Support for chart fill color - @CrazyBite #158
-
Support for read Hyperlink for xml - @GreatHumorist #223
-
Support for cell value validation according to data validation rules - @SailorMax #257
-
Support for custom implementation, or configuration, of PDF libraries - @SailorMax #266
Changed
-
Merge data-validations to reduce written worksheet size - @billblume #131
-
Throws exception if a XML file is invalid - @GreatHumorist #222
-
Upgrade to mPDF 7.0+ #144
Fixed
-
Control characters in cell values are automatically escaped #212
-
Prevent color changing when copy/pasting xls files written by PhpSpreadsheet to another file - @al-lala #218
-
Add cell reference automatic when there is no cell reference('r' attribute) in Xlsx file. - @GreatHumorist #225 Refer to #201
-
`Reader\Xlsx::getFromZipArchive()` function return false if the zip entry could not be located. - @anton-harvey #268
BREAKING CHANGE
-
Extracted coordinate method to dedicate class migration guide.
-
Column indexes are based on 1, see the migration guide.
-
Standardization of array keys used for style, see the migration guide.
-
Easier usage of PDF writers, and other custom readers and writers, see the migration guide.
-
Easier usage of chart renderers, see the migration guide.
-
Rename a few more classes to keep them in their related namespaces:
- `CalcEngine` => `Calculation\Engine`
- `PhpSpreadsheet\Calculation` => `PhpSpreadsheet\Calculation\Calculation`
- `PhpSpreadsheet\Cell` => `PhpSpreadsheet\Cell\Cell`
- `PhpSpreadsheet\Chart` => `PhpSpreadsheet\Chart\Chart`
- `PhpSpreadsheet\RichText` => `PhpSpreadsheet\RichText\RichText`
- `PhpSpreadsheet\Style` => `PhpSpreadsheet\Style\Style`
- `PhpSpreadsheet\Worksheet` => `PhpSpreadsheet\Worksheet\Worksheet`
[1.0.0-beta] - 2017-08-17
Added
-
Initial implementation of SUMIFS() function
-
Additional codepages
-
MemoryDrawing not working in HTML writer #808
-
CSV Reader can auto-detect the separator used in file #141
-
HTML Reader supports some basic inline styles #180
Changed
-
Start following SemVer properly.
Fixed
-
Fix to getCell() method when cell reference includes a worksheet reference - @MarkBaker
-
Ignore inlineStr type if formula element exists - @ncrypthic #570
-
Excel 2007 Reader freezes because of conditional formatting - @rentalhost #575
-
Readers will now parse files containing worksheet titles over 31 characters #176
General
-
Whitespace after toRichTextObject() - @MarkBaker #554
-
Optimize vlookup() sort - @umpirsky #548
-
c:max and c:min elements shall NOT be inside c:orientation elements - @vitalyrepin #869
-
Implement actual timezone adjustment into PHPExcel_Shared_Date::PHPToExcel - @sim642 #489
BREAKING CHANGE
-
Introduction of namespaces for all classes, eg: `PHPExcel_Calculation_Functions` becomes `PhpOffice\PhpSpreadsheet\Calculation\Functions`
-
Some classes were renamed for clarity and/or consistency:
For a comprehensive list of all class changes, and a semi-automated migration path, read the migration guide.
-
Dropped `PHPExcel_Calculation_Functions::VERSION()`. Composer or git should be used to know the version.
-
Dropped `PHPExcel_Settings::setPdfRenderer()` and `PHPExcel_Settings::setPdfRenderer()`. Composer should be used to autoload PDF libs.
-
Dropped support for HHVM
Previous versions of PHPExcel
The changelog for the project when it was called PHPExcel is still available.
|