2017-25 © Pedro Peláez
 

library spreadsheet

Spreadsheet object representation

image

baptouuuu/spreadsheet

Spreadsheet object representation

  • Saturday, July 16, 2016
  • by Baptouuuu
  • Repository
  • 1 Watchers
  • 0 Stars
  • 5 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 3 Versions
  • 0 % Grown

The README.md

Spreadsheet

master develop
Scrutinizer Code Quality Scrutinizer Code Quality
Code Coverage Code Coverage
Build Status Build Status

Library providing an object modeling of a spreadsheet (all objects are immutable). It comes with objects to build a spreadsheet out of a file and dump a spreadsheet into a file., (*1)

Installation

composer require baptouuuu/spreadsheet

Usage

use Spreadsheet\{
    Spreadsheet,
    Sheet,
    Cell,
    Position
};

$sheet = new Sheet('sheet 1');
$sheet = $sheet
    ->add(
        new Cell(
            new Position('A', 1),
            'A1 value'
        )
    )
    ->add(
        new Cell(
            new Position('B', 2),
            'B2 value'
        )
    );
$spreadsheet = new Spreadsheet('My Spreadsheet');
$spreadsheet = $spreadsheet->add($sheet);

Transform a spreadsheet to a CSV

use Spreadsheet\{
    Writer\CsvWriter,
    Formatter\FormatterInterface,
    File\Csv
};
use Innmind\Immutable\Map;

$writer = new CsvWriter(';', true, new Map('string', FormatterInterface::class));
$file = $writer->write($spreadsheet);
$file instanceof Csv; //true
(string) $file->name(); //sheet 1.csv
(string) $file->content();
/*
A;B
A1;
;B2
*/

In case your spreadsheet contains more than one sheet, the writer will return an instance of DirectoryInterface., (*2)

Building a spreadsheet from a CSV

use Spreadsheet\{
    Reader\CsvReader,
    File\Csv,
    Position
};
use Innmind\Filesystem\Stream\StringStream;

$reader = new CsvReader(';', true);
$spreadsheet = $reader->read(
    new Csv(
        'sheet.csv',
        new StringStream(<<<CSV
A;B
A1;B1
CSV
        )
    )
);

$spreadsheet->name(); //sheet
$spreadsheet->get('sheet')->name(); //sheet
$spreadsheet->get('sheet')->get(new Position('A', 1))->value(); //A1
$spreadsheet->get('sheet')->get(new Position('B', 1))->value(); //B1

If you give an instance of DirectoryInterface to the reader, each file will be a sheet in your spreadhseet., (*3)

The Versions

16/07 2016

dev-master

9999999-dev http://github.com/Baptouuuu/Spreadsheet

Spreadsheet object representation

  Sources   Download

MIT

The Requires

 

spreadsheet

16/07 2016

dev-develop

dev-develop http://github.com/Baptouuuu/Spreadsheet

Spreadsheet object representation

  Sources   Download

MIT

The Requires

 

spreadsheet

16/07 2016

1.0.0

1.0.0.0 http://github.com/Baptouuuu/Spreadsheet

Spreadsheet object representation

  Sources   Download

MIT

The Requires

 

spreadsheet