Download the PHP package mnb/mnb-phpexcel-xls without Composer
On this page you can find all versions of the php package mnb/mnb-phpexcel-xls. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download mnb/mnb-phpexcel-xls
More information about mnb/mnb-phpexcel-xls
Files in mnb/mnb-phpexcel-xls
Package mnb-phpexcel-xls
Short Description Fully independent native BIFF8 XLS reader and writer for MNB PHPExcel.
License MIT
Informations about the package mnb-phpexcel-xls
MNB PHPExcel — Native XLS
A fully independent, pure-PHP BIFF8 reader and writer for legacy Excel 97–2003 .xls files.
This package does not require, suggest, wrap, or call PhpSpreadsheet. Both the OLE Compound File container and the BIFF8 workbook stream are processed natively.
Install
Requirements:
- PHP 8.1+
ext-iconvmnb/mnb-phpexcel-core
Read an XLS file
You can also use the reader directly:
Write an XLS file
Typed cells and cached formulas are supported:
Formula read modes
both returns Mnb\PHPExcel\Reader\State\FormulaResult values containing the formula, cached result, result type, and native BIFF token metadata.
Native feature coverage
Reader
- OLE/CFB version 3 and version 4 containers
- FAT, DIFAT, MiniFAT, directory entries, normal streams, and mini streams
Workbookand olderBookstream names- BIFF8 workbook globals and worksheet substreams
- sheet names, order, hidden state, and worksheet selection
- Unicode shared strings, including SST data split across
CONTINUErecords - numeric
NUMBER,RK, andMULRKcells - strings through
LABELSSTandLABEL - Boolean, error, blank, and multi-blank cells
- formulas with numeric, string, Boolean, error, and blank cached values
- common BIFF8 formula token decoding
- built-in and custom date-format detection
- 1900 and 1904 date systems
- source-level row and column limits/projection
- forward row iteration through
IterableReaderInterface
Writer
- valid BIFF8 workbooks inside native CFB/OLE containers
- multiple worksheets
- Unicode shared strings with
CONTINUEsplitting - numbers, text, Booleans, blanks, errors, dates, and date-times
- common formulas compiled into BIFF8 RPN tokens
- formula cached values
- merged cells
- column widths and row heights
- frozen rows and columns
- atomic file replacement
- BIFF8 worksheet limits: 65,536 rows and 256 columns
Formula compiler coverage
The native writer currently supports:
- numeric, text, Boolean, and error literals
- A1 cell references and ranges
+,-,*,/,^,&=,<>,<,<=,>,>=- unary plus/minus and percentage
- parentheses
- common built-in functions such as
SUM,AVERAGE,MIN,MAX,IF,COUNT,COUNTA,ROUND,DATE,TIME,VLOOKUP, andSUMIF
Unsupported formula tokens or functions raise UnsupportedXlsFeatureException when writing. On reading, unknown formula token streams remain available as a =#BIFF_FORMULA[...] representation while their cached value can still be returned.
Unsupported writer features in the first native milestone
These features are not silently advertised as implemented:
- images and drawings
- charts and pivot tables
- comments and hyperlinks
- conditional formatting
- data validation
- AutoFilter records
- VBA projects and macros
- external workbook links and defined names
- legacy XLS encryption
By default, unsupported worksheet presentation features are skipped so data export remains usable. Set strict_features to true to receive an UnsupportedXlsFeatureException instead:
Security limits
The native binary reader validates and limits:
- file and stream sizes
- FAT, DIFAT, MiniFAT, and directory counts
- cyclic or invalid allocation chains
- stream and sector boundaries
- BIFF record lengths and total record counts
- shared-string counts
- BIFF8 row and column boundaries
Limits can be reduced for untrusted uploads:
Tests
With Composer development dependencies installed:
Without PHPUnit, from a workspace containing sibling mnb-phpexcel-core and mnb-phpexcel-xls repositories:
The fixture suite includes a LibreOffice-generated BIFF8 file, native write/read round-trips, formulas, dates, and SST continuation coverage.
See docs/ROADMAP.md for internals, the exact record matrix, and next compatibility milestones.