PHPExcel Roadmap for 2013

Topics: Developer Forum, Project Management Forum, User Forum
Coordinator
Jan 1, 2013 at 6:01 PM

Now that 2013 has arrived, it's time to summarise what was achieved with PHPExcel over the last year, and look to the planned developments over the coming year.

Not all of last years objectives were met, but significant elements of the roadmap were met:

Major Development Objectives

Readers

  • Additional Reader for HTML.
    A basic HTML reader was added
  • Read Sheet Information without loading entire workbook. 
    schir1964's listWorksheetInfo() method was included in the core for all readers.

Writers

  • Remove tcPDF from the distribution download, and provide configurable options to use 3rd party libraries.
    tcPDF is no longer included with the distribution, but the code contains wrappers for using tcPDF, mPDF and DomPDF for rendering to PDF
  • Document Properties for Excel5 Writer
    The Excel 5 Writer now supports standard properties, although custom properties are not yet supported.
  • Rich Text cells in Excel5 Writer.
    There are still some problems with Rich Text containing UTF-8 characters, but these should all have been resolved in the latest develop branch code.
     

New Features 

  • Chart support
    Basic chart support has now been added for the Excel2007 Reader/Writer, with chart rendering to image files using jpGraph.

Minor Development Objectives

Internals

  • Create a separate PHPExcel_Shared_Complex class for handling Complex numbers within the engineering functions.

This is partly written, though not yet included in core: the intent is to include it as part of the Calculation Engine rewrite planned for the coming year.

  • Additional languages
    Turkish has now been added to the language sets.

General Objectives

  • Ensure no compatability problems running PHPExcel with PHP 5.4.
  • Ongoing bugfixing.
  • Ongoing performance testing and (hopefully) improvements.
  • Distribution as a phar file.

Build Process

  • Convert all my customised test scripts to use PHPUnit (a tricky process that will take some time and effort). 
    This is ongoing
  • Code Coverage Analysis.
  • Move the source repository to github and use TravisCI for automated unit testing

Enhanced Documentation

  • User reference guides for working with cell data, styling and writing (similar to the reading guide, and with lots of example code).

One specific document have been written for autofiltering, others will follow

  • User Documentation in PDF format as well as Doc files.

Documentation is now provided in Word, Open/Libre Office Write and PDF formats

 

In addition, Conditional Formatting was added for the Excel5 Writer; a composer file is now maintained on github, and the library was added to packagist.org

 

Plans for the coming year are to get a release out every three or four months.
Not listed in any particular order as regards releases, here's an overview of the work that I'm planning on doing with the library over the coming year:


Major Development Objectives

Readers 

  • Convert XML-based Readers (Excel2007, OOCalc, Gnumeric, Excel2003XML) to use XMLReader rather than SimpleXML, should help performance and reduce memory overheads.

Writers  

  • Additional Writers for Gnumeric, SYLK, OOCalc and Excel2003XML.

 

Internals  

 

  • Convert the Calculation Engine from using Singleton to use Multiton pattern, to prevent cache errors when working with calculations in multiple workbooks.
  • Full support for Array functions in the calculation engine.
  • Support for Row and Column references in the calculation engine.
  • Performance Rewrite of the Calculation Engine. 
    This is a major part of the planned work for the coming year, and development has already started
  • More consistency in method arguments for cell, row, column and range, particularly for styling.

 

New Features  

  • Pivot Tables, initially for the Excel2007 Reader/Writer. 
  • Extend Chart support to Excel5, and to other Readers/Writers.

Minor Development Objectives

Readers 

  • Optional use of PCLZip for Zip-based Readers (Excel2007) for those who can't use ZipArchive.

 

Helper Features 

  • HTML to Rich-Text Object helper method.
  • Additional languages (e.g. Greek, Japanese) and locale features (e.g. date masks such as J instead of Y for Years) for formulae. It's also probable that I'll make each "language pack" an additional download, rather than part of the core download.

General Objectives

  • Ensure no compatability problems running PHPExcel with PHP 5.5.
  • Ongoing bugfixing.
  • Ongoing performance testing and (hopefully) improvements.

Enhanced Documentation

  • Online Documentation (including API).
  • Wiki on github
  • Links from API Documentation to the Sample code in the /Documentation/Examples and References to Sections in User Documentation.
  • User reference guides for working with cell data, styling and writing (similar to the reading guide, and with lots of example code).

General

PHP 5.2 has been unsupported since 23rd August 2011, and with PHP 5.5 now in alpha, PHP 5.3.0 will be set as the minimum version requirement for PHPExcel before the end of this year. This allows the use of features introduced in PHP 5.3 such as Closures that can give both memory and performance improvements. Good use of Namespaces would also simplify the process of mocking for unit testing.