box/spout 包的简单 csv 封装

dev-master 2020-09-09 01:45 UTC

This package is auto-updated.

Last update: 2024-09-09 22:26:26 UTC


README

box/spout 包的简单 csv 封装

安装

通过 composer 安装

composer require trenchdevs/csv

用法

读取文件

tests/testfiles/valid.csv

id,name,age, tag line,extraheader
1,george,33, "this is my multi line tagline"
2,"Georgie Smith", 31,
use TrenchDevs\Csv\CsvReader;

try {
    
    $reader = new CsvReader('/full/file/path'); // eg. __DIR__ . '/tests/testfiles/valid.csv'
    
    // set the header columns as the headers, use these as the keys for the results while on iteration  
    $reader->setFirstRowAsHeaders(true);
    
    // optional: override headers string, by default it will use columns 
    // on csv if setFirstRowAsHeaders is set to true
    $reader->setHeaders(['id', 'name', 'age', 'tagline']);
    
    foreach ($reader->iterator() as $row) {
        // do something with $row
        //  $row['id'], $row['name'], 
        //  $row['age'], $row['tagline'],      
    }

} catch (Exception $exception ) {
    // handle
}

在同一文件上读取和写入

即将推出...

测试

chris@chriss-MacBook-Pro csv % ./vendor/bin/phpunit tests --testdox
PHPUnit 9.3.8 by Sebastian Bergmann and contributors.

Csv Reader
 ✔ Constructor empty file path test
 ✔ Constructor invalid file path test
 ✔ Constructor valid file test
 ✔ Can iterate items with first row as headers
 ✔ Can iterate items
 ✔ Can override headers test
 ✔ Can override headers first row as headers false test

Time: 00:00.009, Memory: 4.00 MB

OK (7 tests, 41 assertions)

许可证

trenchdevs/csv 库是在 Apache-2.0 许可证下开源的软件,详情请见 Apache-2.0 许可证