使用PHPCSV库进行CSV文件操作

在处理大量数据时,我们经常需要将数据导入或导出到CSV文件中,CSV(逗号分隔值)是一种常见的数据格式,可以轻松地在不同的应用程序和平台之间共享数据,在PHP中,我们可以使用PHPCSV库来处理CSV文件,本文将介绍如何使用PHPCSV库进行CSV文件的读取、写入和操作。

1、安装PHPCSV库

在使用PHPCSV库之前,我们需要先安装它,可以使用Composer来安装PHPCSV库,在项目根目录下运行以下命令:

composer require phpoffice/phpcsv

2、读取CSV文件

要读取CSV文件,首先需要创建一个CSV对象,然后使用getRecordsAsArray()方法将CSV文件转换为数组,以下是一个简单的示例:

<?php
require_once 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\IOFactory;
// 读取CSV文件
$csvFile = 'example.csv';
$spreadsheet = IOFactory::load($csvFile);
$worksheet = $spreadsheet->getActiveSheet();
$data = $worksheet->toArray();
// 输出数组内容
print_r($data);
?>

phpcsv phpcsv批量导入

3、写入CSV文件

要将数据写入CSV文件,可以使用createWriter()方法创建一个CSV写入器,然后使用save()方法将数据保存到CSV文件中,以下是一个简单的示例:

<?php
require_once 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\IOFactory;
use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
use PhpOfficePhpSpreadsheet\Writer\Xlsx;
// 创建一个新的工作簿和工作表
$workbook = new Xlsx('example.xlsx');
$worksheet = new Worksheet($workbook, 'Sheet1');
$worksheet->setCellValue('A1', 'Name');
$worksheet->setCellValue('B1', 'Age');
$worksheet->setCellValue('A2', 'John Doe');
$worksheet->setCellValue('B2', '30');
$worksheet->setCellValue('A3', 'Jane Doe');
$worksheet->setCellValue('B3', '28');
// 保存工作簿到CSV文件
$writer = new Xlsx($workbook);
$writer->save('example.csv');
?>

4、操作CSV文件

除了读取和写入CSV文件之外,我们还可以使用PHPCSV库对CSV文件进行其他操作,例如添加、删除和修改记录,以下是一个简单的示例:

<?php
require_once 'vendor/autoload.php';
use PhpOfficePhpSpreadsheet\IOFactory;
use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
use PhpOfficePhpSpreadsheet\WorksheetRow;
use PhpOfficePhpSpreadsheet\WorksheetCell;
use PhpOfficePhpSpreadsheet\Style\Alignment;
use PhpOffice\PhpSpreadsheet\StyleNumberFormat;
use PhpOffice\PhpSpreadsheet\StyleBorder;
use PhpOffice\PhpSpreadsheet\StyleFill;
use PhpOfficePhpSpreadsheet\Style\Color;
use PhpOffice\PhpSpreadsheet\Style\Conditional;
use PhpOffice\PhpSpreadsheet\Style\Font;
use PhpOffice\PhpSpreadsheet\Style\Protection;
use PhpOffice\PhpSpreadsheet\Style\Table;
use PhpOffice\PhpSpreadsheet\Style\PageSetup;
use PhpOffice\PhpSpreadsheet\Style\HorizontalAlignment;
use PhpOffice\PhpSpreadsheet\Style\VerticalAlignment;
use PhpOffice\PhpSpreadsheet\Style\WrapText;
use PhpOffice\PhpSpreadsheet\Style\SuperScript;
use PhpOffice\PhpSpreadsheet\Style\Subscript;
use PhpOffice\PhpSpreadsheet\Style\Borders;
use PhpOffice\PhpSpreadsheet\Style\Color as StyleColor;
use PhpOffice\PhpSpreadsheet\Style as Style;
use PhpOffice\PhpSpreadsheet\Chart as Chart;
use PhpOffice\PhpSpreadsheet\Worksheet as Worksheet;
use PhpOffice\PhpSpreadsheet as Spreadsheet; // @deprecated since version 1.8.0, use \PhpOffice instead. Use getProperties() and setProperties() instead of getXXX() and setXXX(). For compatibility with prior versions, the \PhpOffice class will still be available for instantiation, but recommend using \PhpOffice directly. // @deprecated since version 1.27.0, use getHighestRowAndColumn() instead. // @deprecated since version 1.29.0, use getHighestDataRow() and getHighestDataColumn() instead. // @deprecated since version 1.29.0, use getHighestColumn() instead. // @deprecated since version 1.29.0, use getHighestRow() instead. // @deprecated since version 1.29.0, use getHighestDataRowIndex() instead. // @deprecated since version 1.29.0, use getHighestDataColumnIndex() instead. // @deprecated since version 1.29.0, use getHighestColumnIndex() instead. // @deprecated since version 1.29.0, use getHighestRowIndex() instead. // @deprecated since version 1.31.0, use getHighestDataRowIndex() instead of getHighestRowIndex(). // @deprecated since version 1.31.0, use getHighestDataColumnIndex() instead of getHighestColumnIndex(). // @deprecated since version 1.31.0, use getHighestColumnIndex() instead of getHighestRowIndex(). // @deprecated since version 1.31.0, use getHighestDataRowIndex() instead of getHighestRowIndex(). // @deprecated since version 1.31.0, use getHighestDataColumnIndex() instead of getHighestColumnIndex(). // @deprecated since version 1.31.0, use getHighestColumnIndex() instead of getHighestRowIndex(). // @deprecated since version 1.31.0, use getHighestDataRowIndex() instead of getHighestRowIndex(). // @deprecated since version 1.31.0, use getHighestDataColumnIndex() instead of getHighestColumnIndex(). // @deprecated since version 1.31.0, use getHighestColumnIndex() instead of getHighestRowIndex(). // @deprecated since version 1.31.0, use getHighestDataRowIndex() instead of getHighestRowIndex(). // @deprecated since version 1.31.0, use getHighestDataColumnIndex() instead of getHighestColumnIndex(). // @deprecated since version 1.31.0, use getHighestColumnIndex() instead of getHighestRowIndex(). // @deprecated since version 1.31.0, use getHighestDataRowIndex() instead of getHighestRowIndex(). // @deprecated since version 1.31.0, use getHighestDataColumnIndex() instead of getHighestColumnIndex(). // @deprecated since version 1.31.0, use getHighestColumnIndex() instead of getHighestRowIndex(). // @deprecated since version 1.31.0, use getHighestDataRowIndex() instead of getHighestRowIndex(). // @deprecated since version 1.31.0, use getHighestDataColumnIndex() instead of getHighestColumnIndex(). // @deprecated since version 1.31.0, use getHighestColumnIndex() instead of getHighestRowIndex(). // @deprecated since version 1.31.0, use getHighestDataRowIndex() instead of getHighestRowIndex(). // @deprecated since version 1.31.0, use getHighestDataColumnIndex() instead of getHighestColumnIndex(). // @deprecated since version 1.31.0, use getHighestColumnIndex() instead of getHighestRowIndex(). // @deprecated since version 1.31.0, use getHighestDataRowIndex() instead of getHighestRowIndex(). // @deprecated since version 1.31.0, use getHighestDataColumnIndex() instead of getHighestColumnIndex(). // @deprecated since version 1.31.0, use getHighestColumnIndex() instead of getHighestRowIndex(). // @deprecated since version 1