There is no license information available for the latest version (v0.3) of this package.

v0.3 2015-10-24 11:48 UTC

This package is auto-updated.

Last update: 2022-07-20 06:19:33 UTC


PlumExcel includes readers and writers for Microsoft Excel files for Plum. Plum is a data processing pipeline for PHP.

Build Status Windows Build status Scrutinizer Code Quality Code Coverage StyleCI

Developed by Florian Eckerstorfer in Vienna, Europe.


  • Read Microsoft Excel (.xlsx and .xls) files
  • Write Microsoft Excel (.xlsx and .xls) files
  • Uses PHPExcel


You can install plum-excel using Composer.

$ composer require plumphp/plum-excel


PlumExcel contains a reader and a writer for Plum. Please refer to the Plum documentation for more information about Plum.

You can also find examples of how to use ExcelReader and ExcelWriter in the examples/ folder.

Write Excel files

Writing Excel files is extremely simply. Just pass the filename of the file to the constructor. If you want to add a header row call the autoDetectHeader() method.

use Plum\PlumExcel\ExcelWriter;

$writer = new ExcelWriter(__DIR__.'/example.xlsx');

You can manually set the header names by calling the setHeader() method and passing an array with names.

$writer->setHeader(['Country Name', 'ISO 3166-1-alpha-2 code']);

However, if you want more control, you can also pass an instance of PHPExcel to the constructor and the format (Excel2007 or Excel5) or an implementation of PHPExcel_Writer_IWriter.

$writer = new ExcelWriter(__DIR__.'/example.xlsx', $excel, 'Excel2007', $writer);

Read Excel files

Reading Excel files is also pretty simple.

use Plum\PlumExcel\ExcelReader;

$reader = new ExcelReader(__DIR__.'/example.xlsx');

Instead of a filename you can also pass an instance of PHPExcel to the constructor.

use Plum\PlumExcel\ExcelReader;

$excel = PHPExcel_IOFactory::load(__DIR__.'/example.xlsx');
$reader = new ExcelReader($excel);

Plum can automatically detect the headers by using Plum\Plum\Converter\HeaderConverter.

use Plum\Plum\Converter\HeaderConverter;
use Plum\Plum\Filter\SkipFirstFilter;
use Plum\PlumExcel\ExcelReader;

$workflow->addConverter(new HeaderConverter());
$workflow->addFilter(new SkipFirstFilter(1));
$workflow->process(new ExcelReader($filename));

Change Log

Version 0.3 (24 October 2015)

  • #2 Handle items that are not arrays

Version 0.2.1 (28 April 2015)

  • Fix Plum version

Version 0.2 (22 April 2015)

  • ExcelReader supports filename as input
  • Add support for Plum\Plum\Reader\ReaderFactory

Version 0.1 (21 April 2015)

  • Initial release


The MIT license applies to plumphp/plum-excel. For the full copyright and license information, please view the LICENSE file distributed with this source code.