2016-08-28 07:29:42 +00:00
# Changelog
2017-09-08 17:56:23 +00:00
2016-08-28 07:29:42 +00:00
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog ](http://keepachangelog.com/ )
and this project adheres to [Semantic Versioning ](http://semver.org/ ).
2018-06-17 17:46:51 +00:00
## [Unreleased]
2018-06-24 11:09:32 +00:00
### Added
2018-05-07 04:41:24 +00:00
- Add excel function EXACT(value1, value2) support - [595 ](https://github.com/PHPOffice/PhpSpreadsheet/pull/595 )
2018-06-24 11:09:32 +00:00
- Support workbook view attributes for Xlsx format - [#523 ](https://github.com/PHPOffice/PhpSpreadsheet/issues/523 )
2018-05-07 04:41:24 +00:00
- Read and write hyperlink for drawing image - [#490 ](https://github.com/PHPOffice/PhpSpreadsheet/pull/490 )
2018-07-22 21:16:34 +00:00
- Added calculation engine support for the new bitwise functions that were added in MS Excel 2013
2018-07-25 13:38:44 +00:00
- 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
2018-07-22 21:16:34 +00:00
- Added calculation engine support for other new functions that were added in MS Excel 2013 and MS Excel 2016
2018-07-22 18:17:04 +00:00
- 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
2018-07-25 13:38:44 +00:00
- 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
2018-06-24 10:35:45 +00:00
2018-06-17 17:46:51 +00:00
### Fixed
2018-07-22 21:16:34 +00:00
- Fix ISFORMULA() function to work with a cell reference to another worksheet
2018-06-17 17:46:51 +00:00
- Xlsx reader crashed when reading a file with workbook protection - [#553 ](https://github.com/PHPOffice/PhpSpreadsheet/pull/553 )
2018-06-24 11:09:32 +00:00
- Cell formats with escaped spaces were causing incorrect date formatting - [#557 ](https://github.com/PHPOffice/PhpSpreadsheet/issues/557 )
2018-07-06 19:06:08 +00:00
- Could not open CSV file containing HTML fragment - [#564 ](https://github.com/PHPOffice/PhpSpreadsheet/issues/564 )
- Exclude the vendor folder in migration - [#481 ](https://github.com/PHPOffice/PhpSpreadsheet/issues/481 )
2018-07-15 03:19:54 +00:00
- Chained operations on cell ranges involving borders operated on last cell only [#428 ](https://github.com/PHPOffice/PhpSpreadsheet/issues/428 )
2018-07-24 14:32:16 +00:00
- Avoid memory exhaustion when cloning worksheet with a drawing [#437 ](https://github.com/PHPOffice/PhpSpreadsheet/issues/437 )
2018-07-20 16:13:01 +00:00
- Migration tool keep variables containing $PHPExcel untouched [#598 ](https://github.com/PHPOffice/PhpSpreadsheet/issues/598 )
2018-06-17 17:46:51 +00:00
2018-06-12 13:40:21 +00:00
## [1.3.1] - 2018-06-12
2018-06-11 13:54:11 +00:00
### Fixed
- Ranges across Z and AA columns incorrectly threw an exception - [#545 ](https://github.com/PHPOffice/PhpSpreadsheet/issues/545 )
2018-06-10 06:44:19 +00:00
## [1.3.0] - 2018-06-10
2018-05-12 02:47:46 +00:00
### 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 ](https://github.com/PHPOffice/PhpSpreadsheet/issues/435 )
2018-05-01 08:15:44 +00:00
- Expose sheet title maximum length as `Worksheet::SHEET_TITLE_MAXIMUM_LENGTH` - [#482 ](https://github.com/PHPOffice/PhpSpreadsheet/issues/482 )
2018-05-23 01:31:41 +00:00
- Allow escape character to be set in CSV reader – [#492 ](https://github.com/PHPOffice/PhpSpreadsheet/issues/492 )
2018-05-12 02:47:46 +00:00
2018-05-06 22:51:39 +00:00
### Fixed
2018-05-12 02:47:46 +00:00
- Subtotal 9 in a group that has other subtotals 9 exclude the totals of the other subtotals in the range - [#332 ](https://github.com/PHPOffice/PhpSpreadsheet/issues/332 )
2018-05-20 10:52:53 +00:00
- `Helper\Html` support UTF-8 HTML input - [#444 ](https://github.com/PHPOffice/PhpSpreadsheet/issues/444 )
2018-03-15 10:09:49 +00:00
- Xlsx loaded an extra empty comment for each real comment - [#375 ](https://github.com/PHPOffice/PhpSpreadsheet/issues/375 )
2018-03-15 10:29:18 +00:00
- Xlsx reader do not read rows and columns filtered out in readFilter at all - [#370 ](https://github.com/PHPOffice/PhpSpreadsheet/issues/370 )
2018-06-10 04:06:57 +00:00
- Make newer Excel versions properly recalculate formulas on document open - [#456 ](https://github.com/PHPOffice/PhpSpreadsheet/issues/456 )
2018-05-30 21:54:38 +00:00
- `Coordinate::extractAllCellReferencesInRange()` throws an exception for an invalid range – [#519 ](https://github.com/PHPOffice/PhpSpreadsheet/issues/519 )
2018-06-02 02:34:44 +00:00
- Fixed parsing of conditionals in COUNTIF functions - [#526 ](https://github.com/PHPOffice/PhpSpreadsheet/issues/526 )
2018-06-06 02:36:32 +00:00
- Corruption errors for saved Xlsx docs with frozen panes - [#532 ](https://github.com/PHPOffice/PhpSpreadsheet/issues/532 )
2018-05-06 22:51:39 +00:00
2018-04-10 03:53:16 +00:00
## [1.2.1] - 2018-04-10
### Fixed
- Plain text and richtext mixed in same cell can be read - [#442 ](https://github.com/PHPOffice/PhpSpreadsheet/issues/442 )
2018-03-04 20:41:15 +00:00
## [1.2.0] - 2018-03-04
2018-02-01 12:23:36 +00:00
2018-02-07 11:59:25 +00:00
### Added
2018-02-26 20:33:47 +00:00
- HTML writer creates a generator meta tag - [#312 ](https://github.com/PHPOffice/PhpSpreadsheet/issues/312 )
2018-01-29 07:24:13 +00:00
- Support invalid zoom value in XLSX format - [#350 ](https://github.com/PHPOffice/PhpSpreadsheet/pull/350 )
2018-02-24 12:14:48 +00:00
- Support for `_xlfn.` prefixed functions and `ISFORMULA` , `MODE.SNGL` , `STDEV.S` , `STDEV.P` - [#390 ](https://github.com/PHPOffice/PhpSpreadsheet/pull/390 )
2018-02-07 11:59:25 +00:00
2018-02-01 12:23:36 +00:00
### Fixed
2018-02-26 20:33:47 +00:00
- Avoid potentially unsupported PSR-16 cache keys - [#354 ](https://github.com/PHPOffice/PhpSpreadsheet/issues/354 )
- Check for MIME type to know if CSV reader can read a file - [#167 ](https://github.com/PHPOffice/PhpSpreadsheet/issues/167 )
- Use proper € symbol for currency format - [#379 ](https://github.com/PHPOffice/PhpSpreadsheet/pull/379 )
- Read printing area correctly when skipping some sheets - [#371 ](https://github.com/PHPOffice/PhpSpreadsheet/issues/371 )
- Avoid incorrectly overwriting calculated value type - [#394 ](https://github.com/PHPOffice/PhpSpreadsheet/issues/394 )
2018-02-26 20:30:44 +00:00
- Select correct cell when calling freezePane - [#389 ](https://github.com/PHPOffice/PhpSpreadsheet/issues/389 )
2018-03-04 20:39:32 +00:00
- `setStrikethrough()` did not set the font - [#403 ](https://github.com/PHPOffice/PhpSpreadsheet/issues/403 )
2018-02-01 12:23:36 +00:00
2018-01-28 12:35:38 +00:00
## [1.1.0] - 2018-01-28
2017-12-28 03:22:01 +00:00
### Added
2018-01-28 07:23:38 +00:00
- Support for PHP 7.2
2018-01-08 15:42:30 +00:00
- Support cell comments in HTML writer and reader - [#308 ](https://github.com/PHPOffice/PhpSpreadsheet/issues/308 )
2017-12-15 13:28:54 +00:00
- Option to stop at a conditional styling, if it matches (only XLSX format) - [#292 ](https://github.com/PHPOffice/PhpSpreadsheet/pull/292 )
2018-01-09 23:12:38 +00:00
- Support for line width for data series when rendering Xlsx - [#329 ](https://github.com/PHPOffice/PhpSpreadsheet/pull/329 )
2018-01-01 11:39:59 +00:00
2017-12-28 03:22:01 +00:00
### Fixed
- Better auto-detection of CSV separators - [#305 ](https://github.com/PHPOffice/PhpSpreadsheet/issues/305 )
2017-12-28 03:36:57 +00:00
- Support for shape style ending with `;` - [#304 ](https://github.com/PHPOffice/PhpSpreadsheet/issues/304 )
2018-01-08 15:42:30 +00:00
- Freeze Panes takes wrong coordinates for XLSX - [#322 ](https://github.com/PHPOffice/PhpSpreadsheet/issues/322 )
2018-01-13 08:58:23 +00:00
- `COLUMNS` and `ROWS` functions crashed in some cases - [#336 ](https://github.com/PHPOffice/PhpSpreadsheet/issues/336 )
2018-01-14 07:59:34 +00:00
- Support XML file without styles - [#331 ](https://github.com/PHPOffice/PhpSpreadsheet/pull/331 )
2018-01-09 21:31:06 +00:00
- Cell coordinates which are already a range cause an exception [#319 ](https://github.com/PHPOffice/PhpSpreadsheet/issues/319 )
2017-12-28 03:22:01 +00:00
1.0.0
```
* ,
_/^\_
< >
* /.-.\ *
* `/&\` *
,@.*;@,
/_o.I %_\ *
* (`'--:o(_@;
/`;--.,__ `') *
;@`o % O,*`'`&\
* (`'--)_@ ;o %'()\ *
/`;--._`''--._O'@;
/&*,()~o`;-.,_ `""`)
* /`,@ ;+& () o*`;-';\
(`""--.,_0 +% @' &()\
/-.,_ ``''--....-'`) *
* /@%;o`:;'--,.__ __.'\
;*,&(); @ % &^;~`"`o;@(); *
/(); o^~; & ().o@*&`;&%O\
`"="==""==,,,.,="=="==="`
__.----.(\-''#####---...___...-----._
'` \)_`"""""`
.--' ')
o( )_-\
`"""` `
```
2017-12-25 01:53:53 +00:00
## [1.0.0] - 2017-12-25
2016-08-28 07:29:42 +00:00
### Added
2017-12-28 03:22:01 +00:00
- Support to write merged cells in ODS format - [#287 ](https://github.com/PHPOffice/PhpSpreadsheet/issues/287 )
2017-12-31 11:53:05 +00:00
- Able to set the `topLeftCell` in freeze panes - [#261 ](https://github.com/PHPOffice/PhpSpreadsheet/pull/261 )
1.0.0
```
* ,
_/^\_
< >
* /.-.\ *
* `/&\` *
,@.*;@,
/_o.I %_\ *
* (`'--:o(_@;
/`;--.,__ `') *
;@`o % O,*`'`&\
* (`'--)_@ ;o %'()\ *
/`;--._`''--._O'@;
/&*,()~o`;-.,_ `""`)
* /`,@ ;+& () o*`;-';\
(`""--.,_0 +% @' &()\
/-.,_ ``''--....-'`) *
* /@%;o`:;'--,.__ __.'\
;*,&(); @ % &^;~`"`o;@(); *
/(); o^~; & ().o@*&`;&%O\
`"="==""==,,,.,="=="==="`
__.----.(\-''#####---...___...-----._
'` \)_`"""""`
.--' ')
o( )_-\
`"""` `
```
2017-12-25 01:53:53 +00:00
- Support `DateTimeImmutable` as cell value
- Support migration of prefixed classes
2017-11-26 06:47:24 +00:00
### Fixed
2017-12-11 02:08:41 +00:00
- Can read very small HTML files - [#194 ](https://github.com/PHPOffice/PhpSpreadsheet/issues/194 )
2017-12-16 08:15:13 +00:00
- Written DataValidation was corrupted - [#290 ](https://github.com/PHPOffice/PhpSpreadsheet/issues/290 )
1.0.0
```
* ,
_/^\_
< >
* /.-.\ *
* `/&\` *
,@.*;@,
/_o.I %_\ *
* (`'--:o(_@;
/`;--.,__ `') *
;@`o % O,*`'`&\
* (`'--)_@ ;o %'()\ *
/`;--._`''--._O'@;
/&*,()~o`;-.,_ `""`)
* /`,@ ;+& () o*`;-';\
(`""--.,_0 +% @' &()\
/-.,_ ``''--....-'`) *
* /@%;o`:;'--,.__ __.'\
;*,&(); @ % &^;~`"`o;@(); *
/(); o^~; & ().o@*&`;&%O\
`"="==""==,,,.,="=="==="`
__.----.(\-''#####---...___...-----._
'` \)_`"""""`
.--' ')
o( )_-\
`"""` `
```
2017-12-25 01:53:53 +00:00
- Date format compatible with both LibreOffice and Excel - [#298 ](https://github.com/PHPOffice/PhpSpreadsheet/issues/298 )
2017-12-11 02:08:41 +00:00
2017-12-13 10:54:25 +00:00
### BREAKING CHANGE
- Constant `TYPE_DOUGHTNUTCHART` is now `TYPE_DOUGHNUTCHART` .
2017-11-26 06:47:24 +00:00
## [1.0.0-beta2] - 2017-11-26
### Added
2017-05-03 12:53:07 +00:00
- Support for chart fill color - @CrazyBite [#158 ](https://github.com/PHPOffice/PhpSpreadsheet/pull/158 )
2017-10-20 07:38:37 +00:00
- Support for read Hyperlink for xml - @GreatHumorist [#223 ](https://github.com/PHPOffice/PhpSpreadsheet/pull/223 )
- Support for cell value validation according to data validation rules - @SailorMax [#257 ](https://github.com/PHPOffice/PhpSpreadsheet/pull/257 )
2017-10-30 15:14:34 +00:00
- Support for custom implementation, or configuration, of PDF libraries - @SailorMax [#266 ](https://github.com/PHPOffice/PhpSpreadsheet/pull/266 )
2017-05-03 12:53:07 +00:00
2017-08-17 13:17:23 +00:00
### Changed
2017-07-31 18:36:54 +00:00
- Merge data-validations to reduce written worksheet size - @billblume [#131 ](https://github.com/PHPOffice/PhpSpreadSheet/issues/131 )
2017-09-20 05:20:12 +00:00
- Throws exception if a XML file is invalid - @GreatHumorist [#222 ](https://github.com/PHPOffice/PhpSpreadsheet/pull/222 )
2017-09-29 02:17:08 +00:00
- Upgrade to mPDF 7.0+ - [#144 ](https://github.com/PHPOffice/PhpSpreadsheet/issues/144 )
2017-07-31 18:36:54 +00:00
2017-08-17 13:17:23 +00:00
### Fixed
2017-09-11 05:42:14 +00:00
- Control characters in cell values are automatically escaped - [#212 ](https://github.com/PHPOffice/PhpSpreadsheet/issues/212 )
- Prevent color changing when copy/pasting xls files written by PhpSpreadsheet to another file - @al -lala [#218 ](https://github.com/PHPOffice/PhpSpreadsheet/issues/218 )
2017-09-22 05:49:38 +00:00
- Add cell reference automatic when there is no cell reference('r' attribute) in Xlsx file. - @GreatHumorist [#225 ](https://github.com/PHPOffice/PhpSpreadsheet/pull/225 ) Refer to [issue#201 ](https://github.com/PHPOffice/PhpSpreadsheet/issues/201 )
2017-11-01 23:16:32 +00:00
- `Reader\Xlsx::getFromZipArchive()` function return false if the zip entry could not be located. - @anton -harvey [#268 ](https://github.com/PHPOffice/PhpSpreadsheet/pull/268 )
2017-09-09 10:29:08 +00:00
2017-09-08 17:56:23 +00:00
### BREAKING CHANGE
2017-11-25 10:26:41 +00:00
- Extracted coordinate method to dedicate class [migration guide ](./docs/topics/migration-from-PHPExcel.md ).
- Column indexes are based on 1, see the [migration guide ](./docs/topics/migration-from-PHPExcel.md ).
2017-09-08 17:56:23 +00:00
- Standardization of array keys used for style, see the [migration guide ](./docs/topics/migration-from-PHPExcel.md ).
2017-10-21 16:54:14 +00:00
- Easier usage of PDF writers, and other custom readers and writers, see the [migration guide ](./docs/topics/migration-from-PHPExcel.md ).
2017-10-29 08:39:42 +00:00
- Easier usage of chart renderers, see the [migration guide ](./docs/topics/migration-from-PHPExcel.md ).
- Rename a few more classes to keep them in their related namespaces:
- `CalcEngine` => `Calculation\Engine`
2017-12-31 11:53:05 +00:00
- `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`
2017-08-17 13:17:23 +00:00
## [1.0.0-beta] - 2017-08-17
### Added
2016-08-28 07:29:42 +00:00
- Initial implementation of SUMIFS() function
- Additional codepages
- MemoryDrawing not working in HTML writer [#808 ](https://github.com/PHPOffice/PHPExcel/issues/808 )
2017-04-17 16:51:53 +00:00
- CSV Reader can auto-detect the separator used in file [#141 ](https://github.com/PHPOffice/PhpSpreadsheet/pull/141 )
2017-06-16 07:36:27 +00:00
- HTML Reader supports some basic inline styles [#180 ](https://github.com/PHPOffice/PhpSpreadsheet/pull/180 )
2016-08-28 07:29:42 +00:00
### Changed
- Start following [SemVer ](http://semver.org ) properly.
2017-08-17 13:17:23 +00:00
### Fixed
2016-08-28 07:29:42 +00:00
- Fix to getCell() method when cell reference includes a worksheet reference - @MarkBaker
- Ignore inlineStr type if formula element exists - @ncrypthic [#570 ](https://github.com/PHPOffice/PHPExcel/issues/570 )
- Excel 2007 Reader freezes because of conditional formatting - @rentalhost [#575 ](https://github.com/PHPOffice/PHPExcel/issues/575 )
2017-07-14 08:53:13 +00:00
- Readers will now parse files containing worksheet titles over 31 characters [#176 ](https://github.com/PHPOffice/PhpSpreadsheet/pull/176 )
2016-08-28 07:29:42 +00:00
### General
- Whitespace after toRichTextObject() - @MarkBaker [#554 ](https://github.com/PHPOffice/PHPExcel/issues/554 )
- Optimize vlookup() sort - @umpirsky [#548 ](https://github.com/PHPOffice/PHPExcel/issues/548 )
- c:max and c:min elements shall NOT be inside c:orientation elements - @vitalyrepin [#869 ](https://github.com/PHPOffice/PHPExcel/pull/869 )
- Implement actual timezone adjustment into PHPExcel_Shared_Date::PHPToExcel - @sim642 [#489 ](https://github.com/PHPOffice/PHPExcel/pull/489 )
2016-10-06 11:39:10 +00:00
### BREAKING CHANGE
2016-12-03 05:51:04 +00:00
- Introduction of namespaces for all classes, eg: `PHPExcel_Calculation_Functions` becomes `PhpOffice\PhpSpreadsheet\Calculation\Functions`
2016-10-06 11:39:10 +00:00
- Some classes were renamed for clarity and/or consistency:
2017-09-08 17:56:23 +00:00
For a comprehensive list of all class changes, and a semi-automated migration path, read the [migration guide ](./docs/topics/migration-from-PHPExcel.md ).
2016-08-28 07:29:42 +00:00
2017-01-21 15:44:33 +00:00
- 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.
2017-07-14 08:06:04 +00:00
- Dropped support for HHVM
2017-01-21 15:44:33 +00:00
2017-04-14 08:38:40 +00:00
## Previous versions of PHPExcel
2016-12-03 02:19:22 +00:00
2017-04-14 08:38:40 +00:00
The changelog for the project when it was called PHPExcel is [still available ](./CHANGELOG.PHPExcel.md ).