ts/reader-excel

此包已被废弃且不再维护。未建议替代包。

ts/reader 的 Excel 插件,我的可扩展字符串和文件读取库。

此包尚未发布版本,且可用的信息很少。


README

ts/reader 的 Excel 插件,我的可扩展字符串和文件读取库。

安装

使用 Composer 安装: composer require ts/reader-excel:~2.0

直接使用实现

如果您确切知道要读取的内容,可以直接实例化读取器实现。

use TS\Reader\Implementation\Json;

$jsonReader = new Json;

// Setting a json string
$jsonReader->setString('{ "key": "value" }');

// Setting a json file
$jsonReader->setFile(/* path to .json file */);

// Reading the data
$data = $jsonReader->readAll();

使用 ReaderContainer

您可以直接使用 reader container 创建读取器,而不必直接实例化读取器实现,只需要进行一些初始化。

use TS\Reader\ReaderContainer;

$container = new ReaderContainer;

// Registration
$container->registerReader('TS\\Reader\\Implementation\\Json', ['json']);
// Register further implementations...

// Creation using a json string
$reader = $container->createForString('json', '{ "key": "value" }');

// Creation using a json file
$reader = $container->createForFile(/* path to .json file */);

// Reading the data
$data = $reader->readAll();

使用 Symfony EventDispatcher

通过利用 Symfony 的 EventDispatcher 组件,您可以拦截或影响读取器生命周期的大多数部分。

要充分利用 EventDispatcher 的功能,您需要在创建 ReaderContainer 或读取器实现时显式传递一个实例。

use Symfony\Component\EventDispatcher\EventDispatcher;
use TS\Reader\Implementation\Json;
use TS\Reader\ReaderContainer;

// Instantiate or get the EventDispatcher instance from somewhere, like a service/DI container
$dispatcher = new EventDispatcher;

// Pass it to the reader implementation or container
$jsonReader = new Json($dispatcher);
$container = new ReaderContainer($dispatcher);

您现在可以监听以下事件,这些事件在 TS\Reader\ReaderEvents 类中进行了描述:

  • INIT: 在读取器构造函数中触发。
  • READ: 读取后触发。
  • READ_COMPLETE: 当所有内容都读取完毕时触发。
  • READ_LINE: 读取一行时触发。

可用的实现

类型 类名 Csv TS\Reader\Implementation\Csv Excel TS\Reader\Implementation\Excel Ini TS\Reader\Implementation\Ini Json TS\Reader\Implementation\Json Txt TS\Reader\Implementation\Txt Xml TS\Reader\Implementation\Xml Yaml TS\Reader\Implementation\Yaml