NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Packagist · #2563 most downloaded on Packagist
Helper for avadim/fast-excel-reader and avadim/fast-excel-writer
Last release 1 months ago
16 Aug 2026
Release timing varies
gaps range from 2 weeks to 1.2 years
Rarely documented
notes for 3 of 15 stable releases
Nothing withdrawn
no release was ever pulled
3 years old
15 releases · first in 2023
One column per quarter.
isAddress() and isRange() check that an address exists: rangeArray() parses a syntax and says nothing about the borders of a sheet, these two do
isAddress() and isRange() check that an address exists: rangeArray() parses a syntax and says nothing about the borders of a sheet, these two doescapeString() encodes control characters with its second argument, so a text becomes a complete ST_Xstring. CR is encoded, TAB and LF are left as they arecolLetterRange() returned an empty array for an address containing a zero digit: 'B10:E20' and '10:30'inRange() did not accept a single cell as a range: inRange('B2', 'B2') gave a warning and falsergbToHsl() did not accept AARRGGBB, while xlsx keeps colors in ARGB, and it produced warnings on an unparseable colorshiftAddress() built a broken address such as '-4' when a cell was shifted out of a sheet, addToRange() did the same for a relative rangeaddToRange($cell, $range, true) returned an array where range, range_abs and *_cell_abs described the range before it was extended, while max_cell described it aftercolNumber() returned the number of the real column XFD for a column out of a sheet: 'XFE' and 'ZZZ' gave 16384correctColor($color, 0) returned a neighbour color instead of the given one, 6 of 12 checked colors were shiftedTypeError in A1toRC(), RCtoA1(), shiftAddress(), shiftAddressRC(), addToRange() and inRange(), a neutral result is returned nowcolNumber() grew without a limit, taking about 6 MB per 200000 calls while reading a sheet cell by cellWorth a look while upgrading, these results are different now:
| Call | Before | Now |
|---|---|---|
colNumber('XFE') |
16384 |
-1 |
inRange('B2:Z99', 'B2:C3') |
true |
false, a range must fit entirely |
addToRange('junk', 'B2:D4') |
TypeError |
'' |
correctColor('#FFC000', -0.249977111117893) |
'#bf8f00' |
'#bf9000' |
rgbToHsl(...)['h'] |
int degrees |
float degrees |
rowNumber() |
?int |
int, it never returned null |
The palette of Excel cannot be reproduced exactly by any documented algorithm: the base of 240 and of 255, quantized HLS and a literal port of the integer Win32 RGBToHLS were compared on 14 colors of the Office theme, the best result is 9 of 14 and every miss is one unit in a channel. A color kept by a zero tint is taken as the criterion instead.
Nothing published for this version
Nothing published for this version
Merge pull request #3 from brainfoolong/php-8.4-fixes
Merge pull request #3 from brainfoolong/php-8.4-fixes
fixed php 8.4 warning
Nothing published for this version
upd: A1toRC(); RCtoA1(); shiftAddress(); shiftAddressRC(); rangeRelOf…
upd: A1toRC(); RCtoA1(); shiftAddress(); shiftAddressRC(); rangeRelOf…
…fsets();
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →