avadim / fast-excel-writer
Lightweight and very fast XLSX Excel Spreadsheet Writer in PHP
Installs: 854 512
Dependents: 6
Suggesters: 0
Security: 0
Stars: 273
Watchers: 5
Forks: 40
Open Issues: 0
pkg:composer/avadim/fast-excel-writer
Requires
- php: >=7.4
- ext-json: *
- ext-mbstring: *
- ext-zip: *
- avadim/fast-excel-helper: ^1.3
Requires (Dev)
- ext-fileinfo: *
- avadim/fast-excel-reader: ^2.22
- phpunit/phpunit: ^9.0
- dev-master
- v6.7.1
- v6.7.0
- v6.6.5
- v6.6.4
- v6.6.3
- v6.6.2
- v6.6.1
- v6.6.0
- v6.5.1
- v6.5.0
- v6.4.1
- v6.4.0
- v6.3.0
- v6.2.0
- v6.1.1
- v6.1.0
- v6.0.0
- v5.8.2
- v5.8.1
- v5.8.0
- v5.7.0
- v5.6.1
- v5.6.0
- v5.5.2
- v5.5.1
- v5.5.0
- v5.4.0
- v5.3.1
- v5.3.0
- v5.2.0
- v5.1.2
- v5.1.1
- v5.1.0
- v5.0.0
- v4.11.0
- v4.10.0
- v4.9.0
- v4.8.3
- v4.8.2
- v4.8.1
- v4.8.0
- v4.7.4
- v4.7.3
- v4.7.2
- v4.7.1
- v4.7.0
- v4.6.0
- v4.5.2
- v4.5.1
- v4.5.0
- v4.4.1
- v4.4.0
- v4.3.1
- v4.3.0
- v4.2.0
- v4.1.2
- v4.1.1
- v4.1.0
- v4.0.6
- v4.0.5
- v4.0.4
- v4.0.3
- v4.0.2
- v4.0.1
- v4.0.0b
- v3.1.3
- v3.1.2
- v3.1.1
- v3.1.0
- v3.0.1
- v2.3.10
- v2.3.9
- v2.3.8
- v2.3.7
- v2.3.6
- v2.3.5
- v2.3.4
- v2.3.3
- v2.3.2
- v2.3.1
- v2.3.0
- v2.2.1
- v2.2.0
- v2.1.2
- v2.1.1
- v2.1.0
- v2.0.0
- dev-styles
- dev-dev
This package is auto-updated.
Last update: 2025-10-10 18:59:10 UTC
README
![]() |
FastExcelWriter v.6 |
FastExcelWriter is a part of the FastExcelPhp Project which consists of
- FastExcelWriter - to create Excel spreadsheets
- FastExcelReader - to read Excel spreadsheets
- FastExcelTemplator - to generate Excel spreadsheets from XLSX templates
- FastExcelLaravel - special Laravel edition
Introduction
Lightweight, powerful and very fast XLSX Spreadsheet Writer in pure PHP. This library is designed to be super-fast and requires minimal memory usage.
FastExcelWriter creates spreadsheets in XLSX format, compatible with MS Excel (Office 2007+), LibreOffice, OpenOffice and others, with many features supported:
- Takes UTF-8 encoded input
- Multiple worksheets
- Supports currency/date/numeric cell formatting, formulas and active hyperlinks
- Supports most styling options for cells, rows, columns - colors, borders, fonts, etc.
- You can set the height of the rows and the width of the columns (including auto width calculation)
- You can add formulas, notes and images in you XLSX-files
- Supports workbook and sheet protection with/without passwords
- Supports page settings - page margins, page size
- Inserting multiple charts
- Supports data validations and conditional formatting
PHP Version Support
Currently, the required PHP minimum version is PHP 7.4
Documentation
Read more in the documentation. Or check out the API reference.
Also, you can see examples in /demo
folder.
Changelog is here.
Installation
Use composer
to install FastExcelWriter into your project:
composer require avadim/fast-excel-writer
Changes In Version 6
- Data Validation support
Important changes in version 6.1
Sheet::setRowOptions()
,Sheet::setColOptions()
,Sheet::setRowStyles()
andSheet::setColStyles()
are deprecated, instead of them you should use other functions:setRowStyle()
,setRowStyleArray()
,setRowDataStyle()
,setRowDataStyleArray()
,setColStyle()
,setColStyleArray()
,setColDataStyle()
,setColDataStyleArray()
- The behavior of the
Sheet::setRowStyle()
andSheet::setColStyle()
has changed, they now set styles for the entire row or column (even if they are empty)
Changes In Version 5
- The general news is Chart support
Important changes in version 5.8
Before v.5.8
$sheet->writeCell(12345); // The number 12345 will be written into the cell $sheet->writeCell('12345'); // The number 12345 will also be written here
In version 5.8 and later
$sheet->writeCell(12345); // The number 12345 will be written into the cell $sheet->writeCell('12345'); // Here the string '12345' will be written into the cell
If you want to keep the previous behavior for backward compatibility, you should use option 'auto_convert_number' when creating a workbook.
$excel = Excel::create(['Sheet1'], ['auto_convert_number' => true]); $sheet = $excel->sheet(); $sheet->writeCell('12345'); // String '12345' will be automatically converted to a number
Changes In Version 4
- Now the library works even faster
- Added a fluent interface for applying styles.
- New methods and code refactoring
FastExcelWriter vs PhpSpreadsheet
PhpSpreadsheet is a perfect library with wonderful features for reading and writing many document formats. FastExcelWriter can only write and only in XLSX format, but does it very fast and with minimal memory usage.
FastExcelWriter:
- 7-9 times faster
- uses less memory by 8-10 times
- supports writing huge 100K+ row spreadsheets
Benchmark of PhpSpreadsheet (generation without styles)
Rows x Cols | Time | Memory |
---|---|---|
1000 x 5 | 0.98 sec | 2,048 Kb |
1000 x 25 | 4.68 sec | 14,336 Kb |
5000 x 25 | 23.19 sec | 77,824 Kb |
10000 x 50 | 105.8 sec | 256,000 Kb |
Benchmark of FastExcelWriter (generation without styles)
Rows x Cols | Time | Memory |
---|---|---|
1000 x 5 | 0.19 sec | 2,048 Kb |
1000 x 25 | 1.36 sec | 2,048 Kb |
5000 x 25 | 3.61 sec | 2,048 Kb |
10000 x 50 | 13.02 sec | 2,048 Kb |
Do you want to support FastExcelWriter?
if you find this package useful you can support and donate to me for a cup of coffee:
- USDT (TRC20) TSsUFvJehQBJCKeYgNNR1cpswY6JZnbZK7
- USDT (ERC20) 0x5244519D65035aF868a010C2f68a086F473FC82b
- ETH 0x5244519D65035aF868a010C2f68a086F473FC82b
Or just give me a star on GitHub :)