MNB PHPExcelDeveloper Guide
XLS module

Native XLS Coverage and Limitations

Understand the implemented BIFF8 feature set, worksheet limits, unsupported writer features, and compatibility test expectations.

Updated

LevelAdvancedReading time9 minPackagemnb/mnb-phpexcel

What you will learn

  • Know the native reader and writer boundary.
  • Avoid promising XLS features that are currently XLSX-only.
  • Build representative Excel and LibreOffice compatibility fixtures.

Reader coverage#

The reader handles OLE/CFB versions 3 and 4, Workbook and Book streams, worksheet metadata, shared strings and CONTINUE records, numeric and string cell variants, Boolean/error/blank cells, common formulas and cached results, dates, formats, merges, dimensions, projection, and forward row iteration.

Writer features not implemented yet#

FeatureCurrent behavior
Images, drawings, charts, and pivotsNot written by the native XLS writer. Use XLSX when these are required.
Comments, hyperlinks, validation, and conditional formattingNot written in the first native milestone.
AutoFilter, macros, VBA, external links, and defined namesNot written. Macro preservation is not promised.
Legacy XLS encryptionNot supported. XLSX provides Office password encryption.
Unsupported formulasWriting throws UnsupportedXlsFeatureException; reading can still expose a diagnostic token representation and cached value.

Respect BIFF8 physical limits#

Run application compatibility tests#

  • Read XLS files generated by the supported Microsoft Excel versions and LibreOffice.
  • Open native output in Microsoft Excel desktop and LibreOffice before release.
  • Round-trip values, dates, formulas, merged cells, widths, heights, and frozen panes.
  • Keep corrupt FAT, cyclic-chain, truncated-record, oversized-stream, and SST continuation fixtures.
  • Use XLSX for advanced workbook presentation instead of silently degrading it into XLS.