Home Features Requirements Examples FAQ Contribute Documents Credits Contact


PHPExcel currently features:
  • Create an in-memory spreadsheet representation
  • Set spreadsheet meta data (author, title, description, ...)
  • Add worksheets to spreadsheet
  • Add data and formulas to individual cells
  • Merge cells
  • Protect ranges of cells with a password
  • Supports setting cell width and height
  • Supports different fonts and font styles
  • Supports formatting, styles, cell borders, fills, gradients, ...
  • Supports hyperlinks
  • Supports different data types for individual cells
  • Supports cell text wrapping
  • Supports conditional formatting
  • Supports column auto-sizing
  • Supports rich-text strings
  • Supports autofilter
  • Supports "freezing" cell panes
  • Supports cell-level security
  • Supports workbook-level security
  • Supports worksheet-level protection
  • Group rows/columns
  • Cell data validation
  • Insert/remove rows/columns
  • Named ranges
  • Worksheet references
  • Calculate formula values
  • Add comments to a cell
  • Add images to your spreadsheet
  • Set image styles
    • Positioning
    • Rotation
    • Shadow
  • Set printing options
    • Header
    • Footer
    • Page margins
    • Paper size
    • Orientation
    • Row and column breaks
    • Repeat rows at header / columns at left
    • Print area
  • Output your spreadsheet object to different file formats
    • Excel 2007 (spreadsheetML)
    • BIFF8 (Excel 97 and higher)
    • PHPExcel Serialized Spreadsheet
    • CSV (Comma Separated Values)
    • HTML
    • PDF
  • Read different file formats into your spreadsheet object
    • Excel 2007 (spreadsheetML)
    • BIFF5 (Excel 5.0 / Excel 95), BIFF8 (Excel 97 and higher)
    • PHPExcel Serialized Spreadsheet
    • Excel 2003 XML format
    • Open Office Calc (.ods)
    • Gnumeric
    • Symbolic Link (SYLK)
    • CSV (Comma Separated Values)
  • ... and lots of other things!

An example of what can be currently achieved: (other Examples)

Last edited Jan 13, 2011 at 2:13 PM by MarkBaker, version 31


Dichthuatso1 Jun 28, 2013 at 10:08 AM 
hi, can I count word in office file and how do it? please help

hackestat May 17, 2013 at 2:16 PM 
Does PHPExcel support definition of radio button and checkbox controls? , I working on a Sql Server query that populates a excel file, but now I need to add some checkboxes.

manhdungitvn Mar 28, 2013 at 7:09 AM 
great tool

ngy Jul 30, 2012 at 9:29 AM 
Great stuff! Kudos!
Wonder if possible to add percentrank.exc and percentrank.inc in the new releases as well? Thanks!

MarkBaker Apr 11, 2012 at 9:02 PM 
@himanshupatidar with the latest Subversion code, you can work with charts... I'm not an expert on CakePHP so I can't comment on that framework

himanshupatidar Mar 14, 2012 at 2:22 PM 
Can i generate graphs with dynamically inserting data and creating a template for the graphs using PHPExcel and CakePHP2.0 ??

platwo0264 Jul 19, 2011 at 4:50 AM 
i want add value '0011' to cell 'B2',
how to write code ?

MarkBaker May 15, 2011 at 11:55 AM 
Graph support (initially only for the Excel2007 Reader and Writer) should be in the implemented in the next (1.7.7) release of PHPExcel

platwo0264 Feb 10, 2011 at 7:52 AM 
how to create graph in file excel with PHPExcel ?

MarkBaker Oct 22, 2010 at 10:30 AM 
@gar37bic - No, PHPExcel doesn't support Excel Forms, mainly because their real value lies in VBscript to process the form, and we don't support VBscript. I've been looking at the possibilities for doing so within a PHP script, and actually believe that it's possible, but it would be a major project in its own right to actually implement it.

gar37bic Oct 20, 2010 at 4:38 PM 
Does PHPExcel support definition of radio button and checkbox controls? I have a project that requires building complex Excel forms, including radio buttons and checkboxes. These two bits are the only items that I can't do in OpenOffice, because the OO definitions for these are incompatible with Excel - the output data format is different, and the form is to be used by Excel users in another company. I'm already using PHPExcel to read the data-filled forms and convert to a custom form of XML (entirely unrelated). I wasn't sure from the feature list if PHPExcel has support for defining (or modifying) these items. If so, I can avoid having to scrounge up a Windows box and a copy of Excel purely for the purpose of defining the forms, and can make the whole application server-based. That would be great if I can do it.

wdhodgson Jul 23, 2010 at 11:31 PM 
Awsome Tool! Can you tell me if it allows you to update already prepared excel workbooks that contain graphs? I understand that your next release may contain the ability to add graphs.... Also, Is there an updated release date for the graphs?
Thanks again and great work!

MarkBaker Feb 24, 2010 at 7:56 AM 
Not yet, and probably not for the 1.7.3 release either, but I've coded the basics for reading charts from Excel2007 workbooks, and rendering them (using jpgraph at present) via a plug-in rendering factory. I'm currently working on writing charts using the Excel2007 writer. Once that's completed, I'll need to do some more work on the methods for adding/editing charts from within your PHP to make the methods more "user friendly". I'm hoping to have that for release 1.7.4 (around May).
So far, I'm reading bar, 3d bar, column, 3d column, line and area (clustered, stacked and stacked 100%); pie, 3d pie, doughnut and 3d doughnut (simple and some exploded); scatter (mostly); basic wireframe contour (partly); radar, filled radar and bubble (partly)... but not stock charts yet. Titles can be rich text; legends displayed. I can handle mult-level x-axis labels, but only a single Y-axis at the moment. I still need to do some work on order of plots, and haven't yet done any work on trend lines.

Once I have reading and writing for Excel2007 working, and the methods to allow you to manipulate charts from your scripts, I'll look to the OOCalc and Excel5 reader and writer for subsequent releases.

juanmf Feb 23, 2010 at 6:23 PM 
Hi, great tool you got here. I wonder if it allows you to add/edit graphs.