php office csv
导读: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