Code Monkey home page Code Monkey logo

spreadsheet_excel_writer's Introduction

Build Status Latest Stable Version Coverage Status

Spreadsheet_Excel_Writer

This package is Spreadsheet_Excel_Writer and has been migrated from svn.php.net.

Please report all new issues via the PEAR bug tracker.

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.

Installation

Pear

To test, run

$ phpunit

To build, simply

$ pear package

To install from scratch

$ pear install package.xml

To upgrade

$ pear upgrade -f package.xml

Composer

This package comes with support for Composer.

To install from Composer

$ composer require pear/spreadsheet_excel_writer

To install the latest development version

$ 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)

Some important limitations:

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")

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

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' => '[email protected]',
        '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

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

Estimated performance:

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

spreadsheet_excel_writer's People

Contributors

sanmai avatar clockwerx avatar helgi avatar cweiske avatar c-schmitz avatar mj avatar stevleibelt avatar stdex avatar till avatar roojs avatar dmitryuk avatar alwinkpc avatar andreybolonin avatar caugner avatar coling avatar kenguest avatar sean-rose avatar dependabot-preview[bot] avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.