Download Latest Version v5.18.0 source code.zip (33.6 kB) Google Add to Preferred Sources
Home / v5.17.0
Name Modified Size InfoDownloads / Week
Parent folder
README.md 2026-09-08 1.3 kB
v5.17.0 source code.tar.gz 2026-09-08 23.9 kB
v5.17.0 source code.zip 2026-09-08 30.6 kB
Totals: 3 Items   55.7 kB 1

headerRow()

startRow() alone used to double as the header row too, so reading a file starting anywhere but row 1 lost the real headers — the first data row got used as the header names instead. headerRow() decouples the two.

:::php
$rows = (new FastExcel())->headerRow(1)->startRow(4)->import('file.xlsx');

This is also what makes chunked imports work cleanly: every chunk can read the same header row while sliding its own startRow()/limitRows() window over the data. startRow() on its own keeps its historical meaning, so nothing breaks for existing callers.

Fixes [#349], reported by @MaarekVarres.

escapeFormulas()

Cell values starting with =, +, - or @ are treated as formulas by Excel and other spreadsheet software, which can silently execute unintended content when a file is opened. escapeFormulas() writes those values as plain text instead.

:::php
(new FastExcel($rows))->escapeFormulas()->export('file.xlsx');

Fixes [#356], reported by @LauKL1991. Thanks also to @ariprw and @gmutinel, whose '-prefix workarounds on the issue shaped the fix.


Thanks to @dannyyol for reviewing both of these.

Full changelog: https://github.com/rap2hpoutre/fast-excel/compare/v5.16.0...v5.17.0

Source: README.md, updated 2026-09-08