🇬🇧 English · 🇷🇺 Русский
FastExcelReader is a part of the FastExcelPhp Project which consists of
- FastExcelWriter - to create Excel spreadsheets
- FastExcelReader - to reader Excel spreadsheets and CSV-files
- FastExcelTemplator - to generate Excel spreadsheets from XLSX templates
- FastExcelLaravel - special Laravel edition
This library is designed to be lightweight, super-fast and requires minimal memory usage.
FastExcelReader can read Excel compatible spreadsheets in XLSX format (Office 2007+), legacy XLS format (Office 97-2003) and CSV-files. It only reads data, but it does it very quickly and with minimal memory usage.
- Supports XLSX format (Office 2007+) with multiple worksheets
- Supports autodetect currency/numeric/date types
- Supports auto formatter and custom formatter of datetime values
- The library can define and extract images from XLSX files
- The library can read styling options of cells - formatting patterns, colors, borders, fonts, etc.
- Supports legacy XLS format (Office 97-2003, BIFF8) with the same API as XLSX
- Values, dates, cell styles, formula text and images are all returned in the same shape
- The format is chosen by the file signature, not by the extension
- Streaming as well: a sheet is read in one forward pass with constant memory
- Delimiter Detection: Automatic detection or manual specification of column delimiters.
- Wide Encoding Support: Any encoding supported by your PHP environment
- Supports fields with or without quotes, and escaped quotes (doubled quotes).
- Multi-line Fields Handles line breaks within quoted fields.
- Two modes - strict (follows RFC 4180) and tolerant (with non-standard CSV files)
Use composer to install FastExcelReader into your project:
composer require avadim/fast-excel-reader
use \avadim\FastExcelReader\Excel;
// XLSX and legacy XLS are both opened this way; the reader is chosen by the file signature
$excel = Excel::open(__DIR__ . '/files/demo.xlsx');
// Read all rows into a two-dimensional array (ROW x COL)
$rows = $excel->readRows();
// Or read row by row (memory efficient)
$sheet = $excel->sheet();
foreach ($sheet->nextRow() as $rowNum => $rowData) {
// handle $rowData
}See more in the Getting Started guide.
- Getting Started — read cells, rows and columns
- Reading Data — row by row, array keys, empty cells & rows
- Advanced Reading — read areas, defined names, callbacks
- Cell Value Types & Date Formatter
- Cell Styles — read complete style info of cells
- Images — extract images from XLSX
- Sheet Metadata — data validation, column widths, row heights, freeze pane, tab color, merged cells, dimensions
- CSV Parsing — reading CSV files
- XLS (Excel 97-2003) — reading legacy XLS workbooks
You can find more examples in the /demo folder.
See CHANGELOG.md for the list of changes.
if you find this package useful you can give me a star on GitHub.
Or you can donate me :)
- USDT (TRC20) TSsUFvJehQBJCKeYgNNR1cpswY6JZnbZK7
- USDT (ERC20) 0x5244519D65035aF868a010C2f68a086F473FC82b
- ETH 0x5244519D65035aF868a010C2f68a086F473FC82b