linio / spreadsheet-parser
允许您解析和导入电子表格数据文件
1.0.2
2023-02-22 13:31 UTC
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-08-28 18:46:39 UTC
README
Linio 电子表格解析器允许您解析和导入数据文件。此组件支持文本和二进制文件格式。
安装
安装 Linio 电子表格解析器的推荐方法是 通过 composer。
$ composer install linio/spreadsheet-parser
测试
要运行测试套件,您需要通过 composer 安装依赖项,然后运行 PHPUnit。
$ composer install
$ vendor/bin/phpunit
使用方法
使用解析器有两种方式:独立或作为服务。
独立
<?php use Linio\Component\SpreadsheetParser\Spreadsheet; $spreadsheet = new Spreadsheet('/folder/file.csv'); $columnNames = $spreadsheet->getColumnNames(); $data = $spreadsheet->getData();
服务
<?php $container['spreadsheet.parser'] = function() { return new SpreadsheetParserService(); } $spreadsheet = $container['spreadsheet.parser']->parseSpreadsheet($filePath, $fileType, $options); $columnNames = $spreadsheet->getColumnNames(); $data = $spreadsheet->getData();
方法
构造函数
<?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 => ';']);
$fileType 参数是可选的。如果不存在,它将使用文件扩展名来确定其类型。
open
此方法打开文件。这是一个可选步骤,因为在文件未打开之前调用读取文件的方法时,将自动打开文件。
<?php /** * @return void */ public function open();
getColumnNames
此方法返回文件(第一行)中的列名或 false,如果创建 Spreadsheet 对象时将 has_column_names 选项设置为 false。
<?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
此方法关闭打开的句柄并删除创建的临时文件。在您不再需要访问文件时,应始终调用此方法。
<?php /** * @return void */ public function close(); $spreadsheet->close();
解析器
csv
CSV 文件解析器。
解析器选项
CsvParser::OPTION_HAS_COLUMN_NAMES(默认为true)CsvParser::OPTION_LENGTH(默认为0)CsvParser::OPTION_DELIMITER(默认为,)CsvParser::OPTION_ENCLOSURE(默认为")CsvParser::OPTION_ESCAPE(默认为\)
xlsx
Excel 2007+ 文件(XLSX)解析器。设置 OPTION_SHEET_INDEX 指定要导入文件中的工作表索引。设置 OPTION_SHEET_NAME 优先于设置 OPTION_SHEET_INDEX。如果两者都指定,解析器将只尝试使用指定为 OPTION_SHEET_NAME 的工作表。
解析器选项
XlsxParser::OPTION_HAS_COLUMN_NAMES(默认为true)XlsxParser::OPTION_SHEET_INDEX(默认为1)XlsxParser::OPTION_SHEET_NAME(默认为null)