linio / spreadsheet-parser
Allows you to parse and import spreadsheet data files
Installs: 2 313
Dependents: 0
Suggesters: 0
Security: 0
Stars: 8
Watchers: 55
Forks: 2
Open Issues: 3
Requires
- php: >=7.1
- ext-zip: *
- doctrine/inflector: ^2.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.0
- mikey179/vfsstream: 1.6.*
- phpunit/phpunit: >=5.0
This package is auto-updated.
Last update: 2024-11-28 19:22:51 UTC
README
Linio Spreadsheet Parser allows you to parse and import data files. This component supports both text and binary file formats.
Install
The recommended way to install Linio Spreadsheet Parser is through composer.
$ composer install linio/spreadsheet-parser
Tests
To run the test suite, you need install the dependencies via composer, then run PHPUnit.
$ composer install
$ vendor/bin/phpunit
Usage
There are two ways of using the parser: standalone or as a service.
Standalone
<?php use Linio\Component\SpreadsheetParser\Spreadsheet; $spreadsheet = new Spreadsheet('/folder/file.csv'); $columnNames = $spreadsheet->getColumnNames(); $data = $spreadsheet->getData();
Service
<?php $container['spreadsheet.parser'] = function() { return new SpreadsheetParserService(); } $spreadsheet = $container['spreadsheet.parser']->parseSpreadsheet($filePath, $fileType, $options); $columnNames = $spreadsheet->getColumnNames(); $data = $spreadsheet->getData();
Methods
Constructor
<?php use Linio\Component\SpreadsheetParser\Spreadsheet; use Linio\Component\SpreadsheetParser\Exception\FileNotFoundException; use Linio\Component\SpreadsheetParser\Exception\InvalidFileTypeException; use Linio\Component\SpreadsheetParser\Parser\CsvParser; /** * @param $filePath * @param string $fileType * @param array $options * * @throws FileNotFoundException * @throws InvalidFileTypeException */ public function __construct($filePath, $fileType = null, array $options = []); $spreadsheet = new Spreadsheet('/folder/file.txt', Spreadsheet::TYPE_CSV, [CsvParser::OPTION_DELIMITER => ';']);
The $fileType
parameter is optional. If not present, it will use the file extension to determine its type.
open
This method opens the file. This is an optional step as the methods that read from the file will open the file automatically if the file was not opened before they are called.
<?php /** * @return void */ public function open();
getColumnNames
This method returns the column names from the file (first row) or false
if the option has_column_names
was set to false when creating the Spreadsheet
object.
<?php /** * @return array|false */ public function getColumnNames(); $columnNames = $spreadsheet->getColumnNames();
getData
<?php /** * @param int $numRows * * @return array */ public function getData($numRows = 0); $dataWholeFile = $spreadsheet->getData(); $dataFirst5Lines = $spreadsheet->getData(5);
close
This method closes the open handles and deletes the temporary files created. It should always be called when you don't need to access the file anymore.
<?php /** * @return void */ public function close(); $spreadsheet->close();
Parsers
csv
Parser for CSV files.
Parser options:
CsvParser::OPTION_HAS_COLUMN_NAMES
(defaults totrue
)CsvParser::OPTION_LENGTH
(defaults to0
)CsvParser::OPTION_DELIMITER
(defaults to,
)CsvParser::OPTION_ENCLOSURE
(defaults to"
)CsvParser::OPTION_ESCAPE
(defaults to\
)
xlsx
Parser for XLSX (Excel 2007+) files.
The OPTION_SHEET_INDEX
setting specifies the desired sheet index to import within the file.
The OPTION_SHEET_NAME
setting has precedence over the setting OPTION_SHEET_INDEX
. If both are specified, the parser will only try to use the sheet specified by OPTION_SHEET_NAME
.
Parser options:
XlsxParser::OPTION_HAS_COLUMN_NAMES
(defaults totrue
)XlsxParser::OPTION_SHEET_INDEX
(defaults to1
)XlsxParser::OPTION_SHEET_NAME
(defaults tonull
)