2017 © Pedro Peláez
 

library spreadsheet

Spreadsheet read writer abstraction for box/spout and phpexcel

image

nealyip/spreadsheet

Spreadsheet read writer abstraction for box/spout and phpexcel

  • Wednesday, July 4, 2018
  • by nealyip
  • Repository
  • 1 Watchers
  • 0 Stars
  • 97 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 20 Versions
  • 54 % Grown

The README.md

Description

Spreadsheet read writer abstraction for box/spout and phpexcel, support Laravel, (*1)

Updates

v1.1.2 Fix header for downloading xlsx, throw generic exception on boxspout write function
v1.1.0 Add PHPSpreadsheet. PHPExcel was deprecated. Allow use of class with namespace for SPREADSHEET_WRITER and SPREADSHEET_READER from .env, (*2)

Installation

composer require nealyip/spreadsheet

Add this provider to config/app.php, (*3)

\Nealyip\Spreadsheet\SpreadsheetServiceProvider::class,

Configuration

Publish config, (*4)

php artisan vendor:publish --provider="Nealyip\Spreadsheet\SpreadsheetServiceProvider"

Simply change config/spreadsheet.php to select one spreadsheet data provider
PHPSpreadsheet is used by default, (*5)

or configure on the .env file, (*6)

SPREADSHEET_WRITER=PHPSpreadsheet  
SPREADSHEET_READER=BoxSpout  

Or if you implement your own Writer or Reader, you may use full class name here., (*7)

SPREADSHEET_WRITER=App\Spreadsheet\CustomerWriter

be remember to implement, (*8)

Nealyip\Spreadsheet\Writer

How to use

Dependency Injection, (*9)

Reader

use Nealyip\Spreadsheet\Reader;
class Sth{
    protected $_reader;

    public function __construct(Reader $reader) {
        $this->_reader = $reader;
    }

    public function readFile($filename){
        $data = $this->_reader->toKeyValueArray($filename);

    }

Reader using generator

use Nealyip\Spreadsheet\Reader;
class Sth{
    protected $_reader;

    public function __construct(Reader $reader) {
        $this->_reader = $reader;
    }

    public function readFile($filename){
        $data = $this->_reader->toKeyValueArray($filename);
        foreach ($this->_reader->read($filename) as $item){
            // $item is a row in array form        
        } 
    }

Writer

use Nealyip\Spreadsheet\Writer;
class Sth{
    protected $_writer;

    public function __construct(Writer $writer) {
        $this->_writer = $writer;
    }

    public function writeFile($filename){

        $headers = ['Name', 'Gender', 'Age'];

        $this->_writer
            ->setup("report.xlsx")
            ->useSheet('Report')
            ->writeArray([['Tom','M','20'], ['Ann','F','24']], $headers)
            ->save();

    }

Writer using generator

use Nealyip\Spreadsheet\Writer;
class Sth{
    protected $_writer;

    public function __construct(Writer $writer) {
        $this->_writer = $writer;
    }

    /**    
     * Data source from DB/API etc
     * 
     * @return \Generator
     */
    protected function _data(){
        $data = [['Tom','M','20'], ['Ann','F','24']];
        foreach ($data as $d) {
            yield $d;
        }
    }


    public function writeFile($filename){

        $headers = ['Name', 'Gender', 'Age'];

        $this->_writer
            ->setup("report.xlsx")
            ->useSheet('Report')
            ->write($this->_data(), $headers)
            ->save();
    }

Write to local file


use Nealyip\Spreadsheet\Writer; class Sth{ protected $_writer; public function __construct(Writer $writer) { $this->_writer = $writer; } /** * Data source from DB/API etc * * @return \Generator */ protected function _data(){ $data = [['Tom','M','20'], ['Ann','F','24']]; foreach ($data as $d) { yield $d; } } public function writeFile($filename){ $headers = ['Name', 'Gender', 'Age']; $this->_writer ->setup("report.xlsx", false) ->useSheet('Report') ->write($this->_data(), $headers) ->save(); }

Memory limit and execution timeout

If you have encounter memory exhaust problem, you may tune the memory limit by, (*10)

ini_set('memory_limit', '1000M');

or for execution timeout, (*11)

ini_set('max_execution_time', 300);

The Versions

04/07 2018

dev-master

9999999-dev

Spreadsheet read writer abstraction for box/spout and phpexcel

  Sources   Download

MIT

The Requires

 

The Development Requires

by Neal Yip

04/07 2018

v1.1.2

1.1.2.0

Spreadsheet read writer abstraction for box/spout and phpexcel

  Sources   Download

MIT

The Requires

 

The Development Requires

by Neal Yip

04/07 2018

v1.1.1

1.1.1.0

Spreadsheet read writer abstraction for box/spout and phpexcel

  Sources   Download

MIT

The Requires

 

The Development Requires

by Neal Yip

04/07 2018

v1.1.0

1.1.0.0

Spreadsheet read writer abstraction for box/spout and phpexcel

  Sources   Download

MIT

The Requires

 

The Development Requires

by Neal Yip

28/06 2018

v1.0.14

1.0.14.0

Spreadsheet read writer abstraction for box/spout and phpexcel

  Sources   Download

MIT

The Requires

 

The Development Requires

by Neal Yip

28/06 2018

v1.0.13

1.0.13.0

Spreadsheet read writer abstraction for box/spout and phpexcel

  Sources   Download

MIT

The Requires

 

The Development Requires

by Neal Yip

10/04 2018

v1.0.12

1.0.12.0

Spreadsheet read writer abstraction for box/spout and phpexcel

  Sources   Download

MIT

The Requires

 

The Development Requires

by Neal Yip

10/04 2018

v1.0.11

1.0.11.0

Spreadsheet read writer abstraction for box/spout and phpexcel

  Sources   Download

MIT

The Requires

 

The Development Requires

by Neal Yip

09/04 2018

v1.0.10

1.0.10.0

Spreadsheet read writer abstraction for box/spout and phpexcel

  Sources   Download

MIT

The Requires

 

The Development Requires

by Neal Yip

08/04 2018

dev-travis

dev-travis

Spreadsheet read writer abstraction for box/spout and phpexcel

  Sources   Download

MIT

The Requires

 

The Development Requires

by Neal Yip

04/12 2017

v1.0.9

1.0.9.0

Spreadsheet read writer abstraction for box/spout and phpexcel

  Sources   Download

MIT

The Requires

 

The Development Requires

by Neal Yip

04/12 2017

v1.0.8

1.0.8.0

Spreadsheet read writer abstraction for box/spout and phpexcel

  Sources   Download

MIT

The Requires

 

The Development Requires

by Neal Yip

03/08 2017

v1.0.7

1.0.7.0

Spreadsheet read writer abstraction for box/spout and phpexcel

  Sources   Download

MIT

The Requires

 

The Development Requires

by Neal Yip

03/08 2017

v1.0.6

1.0.6.0

Spreadsheet read writer abstraction for box/spout and phpexcel

  Sources   Download

MIT

The Requires

 

The Development Requires

by Neal Yip

03/08 2017

v1.0.5

1.0.5.0

Spreadsheet read writer abstraction for box/spout and phpexcel

  Sources   Download

MIT

The Requires

 

The Development Requires

by Neal Yip

28/07 2017

v1.0.4

1.0.4.0

Spreadsheet read writer abstraction for box/spout and phpexcel

  Sources   Download

MIT

The Requires

 

The Development Requires

by Neal Yip

28/07 2017

v1.0.3

1.0.3.0

Spreadsheet read writer abstraction for box/spout and phpexcel

  Sources   Download

MIT

The Requires

 

The Development Requires

by Neal Yip

27/07 2017

v1.0.2

1.0.2.0

Spreadsheet read writer abstraction for box/spout and phpexcel

  Sources   Download

MIT

The Requires

 

The Development Requires

by Neal Yip

27/07 2017

v1.0.1

1.0.1.0

Spreadsheet read writer abstraction for box/spout and phpexcel

  Sources   Download

MIT

The Requires

 

The Development Requires

by Neal Yip

26/07 2017

v1.0

1.0.0.0

Spreadsheet read writer abstraction for box/spout and phpexcel

  Sources   Download

MIT

The Requires

 

The Development Requires

by Neal Yip