Top Related Projects
A pure PHP library for reading and writing spreadsheet files
Read and write spreadsheet files (CSV, XLSX and ODS), in a fast and scalable way
Lightweight XLSX Excel Spreadsheet Writer in PHP
Parse and retrieve data from Excel XLSx files
Quick Overview
PHPOffice/PHPExcel is a library written in pure PHP that provides a set of classes for reading and writing various spreadsheet file formats, such as Excel (BIFF) .xls, Excel 2007 (OfficeOpenXML) .xlsx, CSV, Libre/OpenOffice Calc .ods, and more. It allows developers to create, modify, and read spreadsheet files using PHP.
Pros
- Supports multiple spreadsheet formats (XLS, XLSX, CSV, ODS)
- Extensive documentation and community support
- Ability to perform complex spreadsheet operations (formulas, styling, charts)
- Compatible with various PHP versions
Cons
- Performance issues with large datasets
- Memory-intensive for complex operations
- No longer actively maintained (superseded by PhpSpreadsheet)
- Limited support for newer Excel features
Code Examples
- Creating a new spreadsheet:
$spreadsheet = new PHPExcel();
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', 'Hello World!');
- Reading an existing Excel file:
$reader = PHPExcel_IOFactory::createReader('Excel2007');
$spreadsheet = $reader->load('example.xlsx');
$value = $spreadsheet->getActiveSheet()->getCell('A1')->getValue();
- Saving a spreadsheet as XLSX:
$writer = PHPExcel_IOFactory::createWriter($spreadsheet, 'Excel2007');
$writer->save('output.xlsx');
Getting Started
- Install PHPExcel using Composer:
composer require phpoffice/phpexcel
- Include the autoloader in your PHP script:
require 'vendor/autoload.php';
- Create a new spreadsheet and add data:
$spreadsheet = new PHPExcel();
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', 'Name');
$sheet->setCellValue('B1', 'Age');
$sheet->setCellValue('A2', 'John Doe');
$sheet->setCellValue('B2', 30);
$writer = PHPExcel_IOFactory::createWriter($spreadsheet, 'Excel2007');
$writer->save('output.xlsx');
Note: It's recommended to use the newer PhpSpreadsheet library for new projects, as PHPExcel is no longer maintained.
Competitor Comparisons
A pure PHP library for reading and writing spreadsheet files
Pros of PhpSpreadsheet
- Actively maintained and regularly updated
- Supports PHP 7.1 and later versions
- Improved memory usage and performance
Cons of PhpSpreadsheet
- May require code changes when migrating from PHPExcel
- Slightly steeper learning curve for new users
Code Comparison
PHPExcel:
$objPHPExcel = new PHPExcel();
$objPHPExcel->getProperties()->setCreator("Your Name");
$objPHPExcel->setActiveSheetIndex(0);
$objPHPExcel->getActiveSheet()->setCellValue('A1', 'Hello World');
PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007')->save('myfile.xlsx');
PhpSpreadsheet:
$spreadsheet = new Spreadsheet();
$spreadsheet->getProperties()->setCreator("Your Name");
$spreadsheet->setActiveSheetIndex(0);
$spreadsheet->getActiveSheet()->setCellValue('A1', 'Hello World');
IOFactory::createWriter($spreadsheet, 'Xlsx')->save('myfile.xlsx');
The code structure is similar, but PhpSpreadsheet uses updated class names and namespaces. PHPExcel is no longer maintained, while PhpSpreadsheet is its successor with improved features and compatibility with modern PHP versions. Users familiar with PHPExcel will find the transition to PhpSpreadsheet relatively straightforward, although some code adjustments may be necessary.
Read and write spreadsheet files (CSV, XLSX and ODS), in a fast and scalable way
Pros of Spout
- Significantly faster and more memory-efficient for large files
- Simpler API, easier to use for basic read/write operations
- Streaming approach allows processing of files that don't fit in memory
Cons of Spout
- Limited formatting options compared to PHPExcel
- Fewer advanced features (e.g., no support for charts, pivot tables)
- Less mature ecosystem and community support
Code Comparison
PHPExcel:
$objPHPExcel = new PHPExcel();
$objPHPExcel->getActiveSheet()->setCellValue('A1', 'Hello');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('myfile.xlsx');
Spout:
$writer = WriterFactory::create(Type::XLSX);
$writer->openToFile('myfile.xlsx');
$writer->addRow(['Hello']);
$writer->close();
Both libraries allow reading and writing Excel files, but Spout's API is more straightforward for simple operations. PHPExcel offers more advanced features at the cost of increased complexity and resource usage. Spout is better suited for handling large datasets efficiently, while PHPExcel excels in scenarios requiring extensive formatting and advanced Excel features.
Lightweight XLSX Excel Spreadsheet Writer in PHP
Pros of PHP_XLSXWriter
- Lightweight and memory-efficient, suitable for large datasets
- Faster execution time for generating Excel files
- Simple API, easy to use for basic Excel operations
Cons of PHP_XLSXWriter
- Limited formatting options compared to PHPExcel
- Fewer advanced features and cell types supported
- Less active community and fewer updates
Code Comparison
PHP_XLSXWriter:
$writer = new XLSXWriter();
$writer->writeSheetHeader('Sheet1', array('Name' => 'string', 'Age' => 'integer'));
$writer->writeSheetRow('Sheet1', array('John Doe', 30));
$writer->writeToFile('example.xlsx');
PHPExcel:
$objPHPExcel = new PHPExcel();
$objPHPExcel->setActiveSheetIndex(0);
$objPHPExcel->getActiveSheet()->setCellValue('A1', 'Name')->setCellValue('B1', 'Age');
$objPHPExcel->getActiveSheet()->setCellValue('A2', 'John Doe')->setCellValue('B2', 30);
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('example.xlsx');
PHP_XLSXWriter is more concise and straightforward for simple tasks, while PHPExcel offers more flexibility and control over cell formatting and advanced features. PHPExcel has a steeper learning curve but provides more comprehensive Excel manipulation capabilities.
Parse and retrieve data from Excel XLSx files
Pros of SimpleXLSX
- Lightweight and easy to use, with minimal dependencies
- Faster parsing and lower memory usage for large files
- Supports both reading and writing XLSX files
Cons of SimpleXLSX
- Limited functionality compared to PHPExcel's extensive feature set
- Less active community and fewer contributors
- May not support some advanced Excel features or complex formatting
Code Comparison
SimpleXLSX:
$xlsx = SimpleXLSX::parse('file.xlsx');
foreach ($xlsx->rows() as $row) {
print_r($row);
}
PHPExcel:
$objPHPExcel = PHPExcel_IOFactory::load("file.xlsx");
$worksheet = $objPHPExcel->getActiveSheet();
foreach ($worksheet->getRowIterator() as $row) {
// Process row data
}
SimpleXLSX offers a more straightforward approach to reading Excel files, with fewer lines of code required for basic operations. PHPExcel, while more verbose, provides greater flexibility and advanced features for complex Excel manipulations.
Both libraries have their strengths, and the choice between them depends on the specific requirements of your project. SimpleXLSX is ideal for simple, lightweight operations, while PHPExcel is better suited for more complex Excel file handling and manipulation.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
PHPExcel - DEAD
PHPExcel last version, 1.8.1, was released in 2015. The project was officially deprecated in 2017 and permanently archived in 2019.
The project has not be maintained for years and must not be used anymore. All users must migrate to its direct successor PhpSpreadsheet, or another alternative.
License
PHPExcel is licensed under LGPL (GNU LESSER GENERAL PUBLIC LICENSE)
Top Related Projects
A pure PHP library for reading and writing spreadsheet files
Read and write spreadsheet files (CSV, XLSX and ODS), in a fast and scalable way
Lightweight XLSX Excel Spreadsheet Writer in PHP
Parse and retrieve data from Excel XLSx files
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot