linio/spreadsheet-parser

允许您解析和导入电子表格数据文件

1.0.2 2023-02-22 13:31 UTC

This package is auto-updated.

Last update: 2024-08-28 18:46:39 UTC


README

Latest Stable Version License Build Status Scrutinizer Code Quality

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