Skip to content

Tags: PHPOffice/PhpSpreadsheet

Tags

4.1.0

## 2025-03-02 - 4.1.0

### Added

- Support Justify Last Line. [Issue #4374](#4374) [PR #4373](#4373)
- Allow Spreadsheet clone. [PR #437-](#4370)

### Changed

- ListWorksheetInfo will now return sheetState (visible, hidden, veryHidden). [Issue #4345](#4345) [PR #4366](#4366)
- Start migration to Phpstan 2. [PR #4359](#4359)
- IOFactory identify can return, and createReader and CreateWriter can accept, a class name rather than a file type. [Issue #4357](#4357) [PR #4361](#4361)

### Fixed

- Refactor Helper/Html. [PR #4359](#4359)
- Handle #REF! as Argument to AVERAGEIF/COUNTIF/SUMIF. [Issue #4381](#4381) [PR #4382](#4382)
- Ignore ignoredErrors when not applicable. [Issue #4375](#4375) [PR #4377](#4377)
- Better handling of defined names on sheets whose titles include apostrophes. [Issue #4356](#4356) [Issue #4362](#4362) [Issue #4376](#4376) [PR #4360](#4360)
- Partial solution for removing rows or columns that include edge ranges. [Issue #1449](#1449) [PR #3528](#3528)
- Prefer mb_str_split to str_split. [PR #3341](#3341)

4.0.0

## 2025-02-08 - 4.0.0

### BREAKING CHANGES

- Data Validations will be stored by worksheet, not cell. Index can be one or more cells or cell ranges. [Issue #797](#797) [Issue #4091](#4091) [Issue #4206](#4206) [PR #4240](#4240)
- Conditional Formatting adds Priority property and handles overlapping ranges better. [Issue #4312](#4312) [Issue #4318](#4318) [PR #4314](#4314)
- Csv Reader will no longer auto-detect Mac line endings by default. Prior behavior can be explicitly enabled via `setTestAutoDetect(true)`, and it will not be possible at all with Php9+. [Issue #4092](#4092) [PR #4340](#4340)
- Html Writer will now use "better boolean" logic. Booleans will now be output by default as TRUE/FALSE rather than 1/null-string. Prior behavior can be explicitly enabled via `setBetterBoolean(false)`. [PR #4340](#4340)
- Xlsx Writer will now use false as the default for `forceFullCalc`. This affects writes with `preCalculateFormulas` set to false. Prior behavior can be explicitly enabled via `setForceFullCalc(null)`.[PR #4340](#4340)
- Deletion of items deprecated in Release 3. See "removed" below.

### Added

- Pdf Charts and Drawings. [Discussion #4129](#4129) [Discussion #4168](#4168) [PR #4327](#4327)
- Allow spreadsheet serialization. [Discussion #4324](#4324) [Issue #1741](#1741) [Issue #1757](#1757) [PR #4326](#4326)

### Removed

- Worksheet::getStyles - no replacement. [PR #4330](#4330)
- The following items were deprecated in release 3 and are now removed.
- Drawing::setIsUrl - no replacement.
- Settings::setLibXmlLoaderOptions() and Settings::getLibXmlLoaderOptions() - no replacement.
- Worksheet::getHashCode - no replacement.
- IReader::SKIP_EMPTY_CELLS - use its alias IGNORE_EMPTY_CELLS instead.
- Worksheet::getProtectedCells - use getProtectedCellRanges instead.
- Writer/Html::isMpdf property - use instanceof Mpdf instead.

### Fixed

- Xls writer Parser Mishandling True/False Argument. [Issue #4331](#4331) [PR #4333](#4333)
- Xls writer Parser Parse By Character Not Byte. [PR #4344](#4344)
- Minor changes to dynamic array calculations exposed by using explicit array return types in some tests. [PR #4328](#4328)

3.9.1

## 2025-02-07 - 3.9.1

### Fixed

- Xls writer Parser Mishandling True/False Argument. Backport of [PR #4333](#4333)
- Xls writer Parser Parse By Character Not Byte. Backport of [PR #4344](#4344)

2.3.8

# 2025-02-07 - 2.3.8

### Fixed

- Xls writer Parser Mishandling True/False Argument. Backport of [PR #4333](#4333)
- Xls writer Parser Parse By Character Not Byte. Backport of [PR #4344](#4344)

2.1.9

# 2025-02-07 - 2.1.9

### Fixed

- Xls writer Parser Mishandling True/False Argument. Backport of [PR #4333](#4333)
- Xls writer Parser Parse By Character Not Byte. Backport of [PR #4344](#4344)

1.29.10

# 2025-02-07 - 1.29.10

### Changed

- Allow version 1 and 2 of `composer/pcre`.

### Fixed

- Xls writer Parser Mishandling True/False Argument. Backport of [PR #4333](#4333)
- Xls writer Parser Parse By Character Not Byte. Backport of [PR #4344](#4344)

3.9.0

## 2025-01-26 - 3.9.0

### Added

- Methods to get style for row or column. [PR #4317](#4317)
- Method for duplicating worksheet in spreadsheet. [PR #4315](#4315)

### Fixed

- Security patch for control characters in protocol.
- Ods Reader Sheet Names with Period. [Issue #4311](#4311) [PR #4313](#4313)
- Mpdf and Tcpdf Hidden Columns and Merged Cells. [Issue #4319](#4319) [PR #4320](#4320)
- Html Writer Allow mailto. [Issue #4316](#4316) [PR #4322](#4322)
- Use composer/pcre rather than preg_* in Writer. [PR #4323](#4323)

2.3.7

# 2025-01-26 - 2.3.7

### Fixed

- Backported security patch for control characters in protocol.
- Use Composer\Pcre in Xls/Parser. Partial backport of [PR #4203](#4203)

2.1.8

# 2025-01-26 - 2.1.8

### Fixed

- Backported security patch for control characters in protocol.
- Use Composer\Pcre in Xls/Parser. Partial backport of [PR #4203](#4203)

1.29.9

# 2025-01-26 - 1.29.9

### Fixed

- Backported security patch for control characters in protocol.
- Use Composer\Pcre in Xls/Parser. Partial backport of [PR #4203](#4203)