baptouuuu / spreadsheet
电子表格对象表示
1.0.0
2016-07-16 14:07 UTC
Requires
- php: ~7.0
- innmind/filesystem: ^1.2
- innmind/immutable: ^1.9
This package is auto-updated.
Last update: 2024-09-05 18:38:48 UTC
README
提供电子表格对象建模的库(所有对象都是不可变的)。它包含从文件构建电子表格并将电子表格存入文件的对象。
安装
composer require baptouuuu/spreadsheet
用法
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);
将电子表格转换为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 */
如果您的电子表格包含多个工作表,写入器将返回一个DirectoryInterface
实例。
从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
如果您向读取器提供一个DirectoryInterface
实例,则每个文件都将成为您的电子表格中的一个工作表。