0

是否可以使用Flysystem CSV过滤 CSV 列的子集?

我知道您可以使用AbstractCsv::addFilter(callable $callback)添加任意过滤器,但我认为您不会使用它来删除列。

4

1 回答 1

0

我通过获取要过滤掉的列位置数组来解决这个问题。然后,通过设置一个新的 CSV 对象来写入例如

$new = Writer::createFromFileObject(new \SplTempFileObject);

有了要读取的 CSV,我使用该each方法遍历其行,使用之前构建的列索引构建一个新行并插入到新的 CSV 中。记住return true;each方法中,否则它不会迭代。

$csv = $csv->newReader();
$csv->setOffset(1);
$csv->each(function ($row) use ($new) {
    ... do stuff to alter the row ...
    $new->insertOne($alteredRow)
});
于 2016-03-16T16:14:19.927 回答