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.
- 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
- Subtotal 9 in a group that has other subtotals 9 exclude the totals of the other subtotals in the range - #332
- Plain text and richtext mixed in same cell can be read - #442
- HTML writer creates a generator meta tag - #312
- Support invalid zoom value in XLSX format - #350
- Support for
_xlfn.
prefixed functions andISFORMULA
,MODE.SNGL
,STDEV.S
,STDEV.P
- #390
- 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
- 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
- Better auto-detection of CSV separators - #305
- Support for shape style ending with
;
- #304 - Freeze Panes takes wrong coordinates for XLSX - #322
COLUMNS
andROWS
functions crashed in some cases - #336- Support XML file without styles - #331
- Cell coordinates which are already a range cause an exception #319
- 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
- Can read very small HTML files - #194
- Written DataValidation was corrupted - #290
- Date format compatible with both LibreOffice and Excel - #298
- Constant
TYPE_DOUGHTNUTCHART
is nowTYPE_DOUGHNUTCHART
.
- 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
- 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
- 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 issue#201
Reader\Xlsx::getFromZipArchive()
function return false if the zip entry could not be located. - @anton-harvey #268
- 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
- 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
- Start following SemVer properly.
- 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
- 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
- Introduction of namespaces for all classes, eg:
PHPExcel_Calculation_Functions
becomesPhpOffice\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()
andPHPExcel_Settings::setPdfRenderer()
. Composer should be used to autoload PDF libs. - Dropped support for HHVM
The changelog for the project when it was called PHPExcel is still available.