Welcome to PhpSpreadsheet's documentation
PhpSpreadsheet is a library written in pure PHP and offers a set of classes that allow you to read and write various spreadsheet file formats such as Excel and LibreOffice Calc.
File formats supported
Format | Reading | Writing |
---|---|---|
Open Document Format/OASIS (.ods) | ✓ | ✓ |
Office Open XML (.xlsx) Excel 2007 and above | ✓ | ✓ |
BIFF 8 (.xls) Excel 97 and above | ✓ | ✓ |
BIFF 5 (.xls) Excel 95 | ✓ | |
SpreadsheetML (.xml) Excel 2003 | ✓ | |
Gnumeric | ✓ | |
HTML | ✓ | ✓ |
SYLK | ✓ | |
CSV | ✓ | ✓ |
PDF (using either the TCPDF, Dompdf or mPDF libraries, which need to be installed separately) | ✓ |
Getting started
Software requirements
PHP version 7.4 or newer to develop using PhpSpreadsheet. Other requirements, such as PHP extensions, are enforced by
composer. See the require
section of the composer.json file
for details.
PHP version support
LTS: Support for PHP versions will only be maintained for a period of six months beyond the end of life of that PHP version.
Currently the required PHP minimum version is PHP 7.4: the last release was 7.4.32 on 29th September 2022, and security support ends on 28th November 2022, so PhpSpreadsheet will support PHP 7.4 until 28th May 2023. PHP 8.0 is officially End of Life on 26th November 2023, and PhpSpreadsheet will continue to support PHP 8.0 for six months after that date.
See the composer.json
for other requirements.
Installation
Use composer to install PhpSpreadsheet into your project:
composer require phpoffice/phpspreadsheet
Or also download the documentation and samples if you plan to use them:
composer require phpoffice/phpspreadsheet --prefer-source
If you are building your installation on a development machine that is on a different PHP version to the server where it will be deployed, or if your PHP CLI version is not the same as your run-time such as php-fpm
or Apache's mod_php
, then you might want to add the following to your composer.json
before installing:
{
"require": {
"phpoffice/phpspreadsheet": "^1.23"
},
"config": {
"platform": {
"php": "7.4"
}
}
}
and then run
composer install
to ensure that the correct dependencies are retrieved to match your deployment environment.
See CLI vs Application run-time for more details.
Hello World
This would be the simplest way to write a spreadsheet:
<?php
require 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
$spreadsheet = new Spreadsheet();
$activeWorksheet = $spreadsheet->getActiveSheet();
$activeWorksheet->setCellValue('A1', 'Hello World !');
$writer = new Xlsx($spreadsheet);
$writer->save('hello world.xlsx');
Learn by example
A good way to get started is to run some of the samples. Don't forget to download them via --prefer-source
composer
flag. And then serve them via PHP built-in webserver:
php -S localhost:8000 -t vendor/phpoffice/phpspreadsheet/samples
Then point your browser to:
http://localhost:8000/
The samples may also be run directly from the command line, for example:
php vendor/phpoffice/phpspreadsheet/samples/Basic/01_Simple.php
Learn by documentation
For more documentation in depth, you may read about an overview of the architecture, creating a spreadsheet, worksheets, accessing cells and reading and writing to files.
Or browse the API documentation.
Credits
Please refer to the contributor list for up-to-date credits.