2017 © Pedro Peláez
 

library spreadsheet_excel_writer

More info available on: http://pear.php.net/package/Spreadsheet_Excel_Writer

image

pear/spreadsheet_excel_writer

More info available on: http://pear.php.net/package/Spreadsheet_Excel_Writer

  • Thursday, May 25, 2017
  • by marc-mabe
  • Repository
  • 24 Watchers
  • 30 Stars
  • 70,698 Installations
  • PHP
  • 1 Dependents
  • 0 Suggesters
  • 47 Forks
  • 0 Open issues
  • 3 Versions
  • 10 % Grown

The README.md

Build Status Latest Stable Version Coverage Status, (*1)

Spreadsheet_Excel_Writer

This package is Spreadsheet_Excel_Writer and has been migrated from svn.php.net., (*2)

Please report all new issues via the PEAR bug tracker., (*3)

If this package is marked as unmaintained and you have fixes, please submit your pull requests and start discussion on the pear-qa mailing list., (*4)

Installation

Pear

To test, run, (*5)

$ phpunit

To build, simply, (*6)

$ pear package

To install from scratch, (*7)

$ pear install package.xml

To upgrade, (*8)

$ pear upgrade -f package.xml

Composer

This package comes with support for Composer., (*9)

To install from Composer, (*10)

$ composer require pear/spreadsheet_excel_writer

To install the latest development version, (*11)

$ composer require pear/spreadsheet_excel_writer:dev-master

Features

  • writing Excel (.XLS) spreadsheets
  • support: strings (with formatting for text and cells), formulas, images (BMP)

Limitations

Library support only 2 types of format for writing XLS, also known as Binary Interchange File Format (BIFF): - BIFF5 (Excel 5.0 - Excel 95) - BIFF8 (Excel 98 - Excel 2003), (*12)

Some important limitations:, (*13)

Limit BIFF5 BIFF8
Maximum number of rows 16384 65535
Maximum number of columns 255 255
Maximum data size of a record 2080 bytes 8224 bytes
Unicode support CodePage based character encoding UTF-16LE

Explanation of formats and specifications you can find here (section "Useful references"), (*14)

Correct output only guaranteed with mbstring.func_overload = 0 otherwise, you should use workround mb_internal_encoding('latin1');, (*15)

Usage

Basic usage

use Spreadsheet_Excel_Writer;


$filePath = __DIR__ . '/output/out.xls';
$xls = new Spreadsheet_Excel_Writer($filePath);

// 8 = BIFF8
$xls->setVersion(8);

$sheet = $xls->addWorksheet('info');

// only available with BIFF8
$sheet->setInputEncoding('UTF-8');

$headers = [
    'id',
    'name',
    'email',
    'code',
    'address'
];

$row = $col = 0;
foreach ($headers as $header) {
    $sheet->write($row, $col, $header);
    $col++;
}

for ($id = 1; $id < 100; $id++) {
    $data = [
        'id' => $id,
        'name' => 'Name Surname',
        'email' => 'mail@gmail.com',
        'password' => 'cfcd208495d565ef66e7dff9f98764da',
        'address' => '00000 North Tantau Avenue. Cupertino, CA 12345. (000) 1234567'
    ];
    $sheet->writeRow($id, 0, $data);
}

$xls->close();

Format usage

$xls = new Spreadsheet_Excel_Writer();

$titleFormat = $xls->addFormat(); 
$titleFormat->setFontFamily('Helvetica');
$titleFormat->setBold();
$titleFormat->setSize(10);
$titleFormat->setColor('orange'); 
$titleFormat->setBorder(1);
$titleFormat->setBottom(2);
$titleFormat->setBottomColor(44);
$titleFormat->setAlign('center');

$sheet = $xls->addWorksheet('info'); 

$sheet->write(0, 0, 'Text 123', $titleFormat);

Header usage (Sending HTTP header for download dialog)

$xls = new Spreadsheet_Excel_Writer();
$xls->send('excel_'.date("Y-m-d__H:i:s").'.xls');

Performance

Platform:
Intel(R) Core(TM) i5-4670 CPU @ 3.40GHz
PHP 7.4, (*16)

Test case:
Write xls (BIFF8 format, UTF-8), by 5 cells (1x number, 4x string without format/styles, average line length = 120 char) in each row, (*17)

Estimated performance:, (*18)

Number of rows Time (seconds) Peak memory usage (MB)
10000 0.2 4
20000 0.4 4
30000 0.6 6
40000 0.8 6
50000 1.0 8
65534 1.2 8

Alternative solutions

  • PHPOffice/PhpSpreadsheet
    File formats supported: https://phpspreadsheet.readthedocs.io/en/latest/
  • box/spout
    File formats supported: https://opensource.box.com/spout/

The Versions

25/05 2017

dev-master

9999999-dev

More info available on: http://pear.php.net/package/Spreadsheet_Excel_Writer

  Sources   Download

LGPL

The Requires

 

The Development Requires

by Carsten Schmitz

19/02 2017

v0.9.4-beta

0.9.4.0-beta

More info available on: http://pear.php.net/package/Spreadsheet_Excel_Writer

  Sources   Download

LGPL

The Requires

 

The Development Requires

by Carsten Schmitz

19/02 2017

v0.9.4

0.9.4.0

More info available on: http://pear.php.net/package/Spreadsheet_Excel_Writer

  Sources   Download

LGPL

The Requires

 

The Development Requires

by Carsten Schmitz