首页后端开发PHPphp office csv

php office csv

时间2023-11-13 18:34:03发布访客分类PHP浏览173
导读:CSV概述CSV(Comma Separated Values)即逗号分隔值,是一种常用的文本格式,用于存储表格数据。每行表示一条记录,每个字段之间用逗号隔开,一般以 .csv 作为文件扩展名。CSV 文件的优点是易读易写、可用 Excel...
CSV概述CSV(Comma Separated Values)即逗号分隔值,是一种常用的文本格式,用于存储表格数据。每行表示一条记录,每个字段之间用逗号隔开,一般以 .csv 作为文件扩展名。CSV 文件的优点是易读易写、可用 Excel 打开、大小较小等。使用 PHP 操作 CSVPHP 中提供了很多操作 CSV 文件的函数,但为了更方便、快捷地操作 CSV 文件,开源社区推出了 PHP Office 中的 Csv 库。这个库封装了操作 CSV 文件所需要的各种功能,如读取 CSV 文件、创建 CSV 文件、修改 CSV 文件、删除 CSV 文件等。Csv 库具有以下特点:- 代码简单易用- 执行效率高- 支持多种 CSV 格式- 便于扩展和定制读取 CSV 文件使用 Csv 库读取 CSV 文件非常简单,只需要传入 CSV 文件的路径即可。例如,我们有一个名为 data.csv 的 CSV 文件,里面包含两列数据:姓名和年龄。我们可以这样来读取这个 CSV 文件:
require_once 'vendor/autoload.php';
    use PhpOffice\Csv\CsvReader;
    $reader = new CsvReader();
    $reader->
    setDelimiter(',');
    $reader->
    setEnclosure('"');
    $reader->
    setSheetIndex(0);
    $reader->
    loadFile('data.csv');
    foreach ($reader->
    getActiveSheet()->
getRowIterator() as $row) {
    foreach ($row->
getCellIterator() as $cell) {
    echo $cell->
    getValue() . ', ';
}
    echo 'br>
    ';
}
    
上述代码中调用了 Csv 库中的 CsvReader 类,通过 loadFile() 方法加载了一个名为 data.csv 的 CSV 文件。接着我们使用 getActiveSheet() 方法获取到当前页数为 0 的 Worksheet 对象,并通过 getRowIterator() 和 getCellIterator() 方法遍历每一行和每一列的数据,输出结果如下:
Tom, 20,Jerry, 22,...
如果 CSV 文件中的一些值需要在读入前转换,可以直接在 CsvReader 中进行配置。如,需要将年龄升序排列:
...$reader->
    loadFile('data.csv');
    $reader->
    setSortBy('age', SORT_ASC);
    foreach ($reader->
    getActiveSheet()->
getRowIterator() as $row) {
    echo $row[0] . ', ' . $row[1] . 'br>
    ';
}
    
创建 CSV 文件除了可以对已有的 CSV 文件进行操作外,Csv 库还支持创建新的 CSV 文件。同样是通过 CsvWriter 类来完成,这里我们以动态生成一个包含 fibonacci 数列的 CSV 文件作为示例:
require_once 'vendor/autoload.php';
    use PhpOffice\Csv\CsvWriter;
    $writer = new CsvWriter();
    $writer->
    setDelimiter(',');
    $writer->
    setEnclosure('"');
    $writer->
    setSheetIndex(0);
    $writer->
    openToFile('fib.csv');
    for ($i = 0;
     $iaddRow(array($i + 1,fibonacci($i)));
}
function fibonacci($n) {
    $a = 0;
    $b = 1;
    for ($i = 0;
     $iclose();
    
上述代码中定义了一个 fibonacci 方法,该方法用于生成斐波那契数列的第 n 项。通过 CsvWriter 的 openToFile() 方法打开一个名为 fib.csv 的 CSV 文件,然后循环生成 fibonacci 数列的前 16 项,并将每一项写入 CSV 文件中,最后通过 close() 方法关闭文件。修改 CSV 文件如果需要修改 CSV 文件中的某些数据,Csv 库也提供了相应的接口。我们以修改一个名为 data.csv 的 CSV 文件的年龄为例:
...$reader->
    loadFile('data.csv');
    $writer = new CsvWriter();
    $writer->
    setDelimiter(',');
    $writer->
    setEnclosure('"');
    $writer->
    setSheetIndex(0);
    $writer->
    openToFile('new_data.csv');
    foreach ($reader->
    getActiveSheet()->
getRowIterator() as $row) {
if ($row[0] == 'Tom') {
    $row[1] = 22;
}
    $writer->
    addRow($row);
}
    $writer->
    close();
    
上述代码中先使用 CsvReader 对象读取 data.csv 文件,接着使用 CsvWriter 对象打开一个名为 new_data.csv 的新文件,循环读取 data.csv 文件中每一行数据,如果当前行的姓名为 Tom,则修改年龄为 22,并将整行数据写入新文件中。删除 CSV 文件我们使用 CsvWriter 写入的 CSV 文件很容易删除。只需要使用 unlink() 函数即可:
unlink('new_data.csv');
    
总结PHP Office Csv 库的使用非常方便,很好地封装了操作 CSV 文件所需的各种功能。我们可以使用 CsvReader 类来读取CSV文件,使用 CsvWriter 类来创建、修改和删除CSV文件。如果你经常需要处理 CSV 格式的数据,那么建议尝试使用 PHP Office Csv 库,能够节约你很多时间和精力。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: php office csv
本文地址: https://pptw.com/jishu/537762.html
php openssl 帮助 php odbc 实例

游客 回复需填写必要信息