plumphp/plum-csv

PlumCsv 包含用于 Plum 的 CSV 读取器和写入器。Plum 是一个 PHP 数据处理管道。

v0.4 2015-10-28 22:37 UTC

This package is auto-updated.

Last update: 2024-08-24 00:00:51 UTC


README

Plum

PlumCsv 包含用于 Plum 的 CSV 读取器和写入器。Plum 是一个 PHP 数据处理管道。

Build Status Windows Build status Scrutinizer Code Quality Code Coverage StyleCI

由欧洲维也纳的 Florian Eckerstorfer 开发Florian Eckerstorfer

安装

您可以使用 Composer 安装 Plum。

$ composer require plumphp/plum-csv

使用方法

有关 Plum 的详细信息,请参阅Plum 文档

目前,PlumCsv 包含 CSV 文件的读取器和写入器,并使用 League\CSV 来实际读取和写入 CSV 文件。

CsvReader

您可以使用 Plum\PlumCsv\CsvReader.csv 文件中读取数据。

use Plum\PlumCsv\CsvReader;

$reader = new CsvReader('countries.csv');

可选地,您还可以将分隔符和包装器传递给构造函数。

$reader = new CsvReader('countries.csv`, ',', '"');

大多数 CSV 文件都有标题行。由于 Plum 是逐行处理 CSV 文件,因此您需要添加 HeaderConverter 来更改每个读取项的索引。此外,您可以使用 SkipFirstFilter 跳过标题行。两者 HeaderConverterSkipFirstFilter 都是核心 Plum 包的一部分。

use Plum\Plum\Converter\HeaderConverter;
use Plum\Plum\Filter\SkipFirstFilter;

$workflow = new Workflow();
$workflow->addConverter(new HeaderConverter());
$workflow->addFilter(new SkipFirstFilter(1));
$reader = new CsvReader('countries.csv`, ',', '"');

CsvWriter

Plum\PlumCsv\CsvWriter 允许您将数据写入 .csv 文件。

use Plum\PlumCsv\CsvWriter;

$writer = new CsvWriter('foobar.csv', ',', '"');
$writer->prepare();
$writer->writeItem(['value 1', 'value 2', 'value 3');
$writer->finish();

__construct() 的第二个和第三个参数是可选的,默认分别为 ,"。此外,您可以使用 setHeader() 方法定义列名。必须在 prepare() 之前调用它。

$writer = new CsvWriter('foobar.csv');
$writer->setHeader(['column 1', 'column 2', 'column 3']);
$writer->prepare();

当您动态读取数据时,可能不想手动设置标题列。您可以通过调用 autoDetectHeader() 使用写入到 CsvWriter 的第一个项目的数组键作为标题。

$writer = new CsvWriter('foobar.csv');
$writer->autoDetectHeader(); // Must be called before the first `writeItem()`

如果您需要进一步配置写入器,您可以向 Plum\PlumCsv\CsvWriter 注入 League\Csv\Writer 的实例。

use Plum\PlumCsv\CsvWriter;
use League\Csv\Writer;

$csv = Writer::createFromFileObject(new SplFileObject('countries.csv', 'w'));
$csv->setNullHandlingMode(Writer::NULL_AS_EMPTY);
$writer = new CsvWriter($csv);

变更日志

版本 0.4 (2015 年 10 月 28 日)

  • 在自动设置标题前检查项目是否为数组
  • #10 允许注入 League\Csv\Writer

版本 0.3.1 (2015 年 4 月 28 日)

  • 修复 Plum 版本

版本 0.3 (2015 年 4 月 22 日)

  • 添加对 ReaderFactory 的支持

版本 0.2 (2015 年 4 月 21 日)

  • 修复 Plum 版本

版本 0.1 (2015 年 3 月 24 日)

  • 首次发布

许可

MIT 许可证适用于 plumphp/plum.json。有关完整的版权和许可信息,请查看与此源代码一起分发的 LICENSE 文件。