Skip to content
A pure PHP library for reading and writing spreadsheet files
Latest commit 8af620f Apr 14, 2016 @MarkBaker MarkBaker GH-879 Bug in file PHPExcel/Reader/CSV.php
Code logic identifying a defined separator when no separator is explicitly defined
Case-insensitive check when separator is explicitly defined

PHPExcel - OpenXML - Read, Write and Create spreadsheet documents in PHP - Spreadsheet engine

PHPExcel is a library written in pure PHP and providing a set of classes that allow you to write to and read from different spreadsheet file formats, like Excel (BIFF) .xls, Excel 2007 (OfficeOpenXML) .xlsx, CSV, Libre/OpenOffice Calc .ods, Gnumeric, PDF, HTML, ... This project is built around Microsoft's OpenXML standard and PHP.

Master: Build Status

Develop: Build Status

Join the chat at

File Formats supported


  • BIFF 5-8 (.xls) Excel 95 and above
  • Office Open XML (.xlsx) Excel 2007 and above
  • SpreadsheetML (.xml) Excel 2003
  • Open Document Format/OASIS (.ods)
  • Gnumeric
  • HTML
  • SYLK
  • CSV


  • BIFF 8 (.xls) Excel 95 and above
  • Office Open XML (.xlsx) Excel 2007 and above
  • HTML
  • CSV
  • PDF (using either the tcPDF, DomPDF or mPDF libraries, which need to be installed separately)


  • PHP version 5.2.0 or higher
  • PHP extension php_zip enabled (required if you need PHPExcel to handle .xlsx .ods or .gnumeric files)
  • PHP extension php_xml enabled
  • PHP extension php_gd2 enabled (optional, but required for exact column width autocalculation)

Want to contribute?

If you would like to contribute, here are some notes and guidlines:

  • All new development happens on the 1.8 branch, so it is always the most up-to-date
  • The master branch only contains tagged releases
  • If you are going to be submitting a pull request, please fork from 1.8, and submit your pull request back to that 1.8 branch
  • Wherever possible, code changes should conform as closely as possible to PSR-2 standards
  • Helpful article about forking
  • Helpful article about pull requests



Something went wrong with that request. Please try again.