php实现对excel
PHP 实现 Excel 操作的方法
使用 PHPExcel 或 PhpSpreadsheet 库
PhpSpreadsheet 是 PHPExcel 的继任者,推荐使用 PhpSpreadsheet 进行 Excel 操作。以下是一个简单的示例,展示如何读取和写入 Excel 文件。
安装 PhpSpreadsheet:
composer require phpoffice/phpspreadsheet
读取 Excel 文件
require 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\IOFactory;
$inputFileName = 'example.xlsx';
$spreadsheet = IOFactory::load($inputFileName);
$sheet = $spreadsheet->getActiveSheet();
foreach ($sheet->getRowIterator() as $row) {
$cellIterator = $row->getCellIterator();
$cellIterator->setIterateOnlyExistingCells(false);
foreach ($cellIterator as $cell) {
echo $cell->getValue() . "\t";
}
echo "\n";
}
写入 Excel 文件
require 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', 'Hello World!');
$writer = new Xlsx($spreadsheet);
$writer->save('hello_world.xlsx');
导出 Excel 文件到浏览器
require 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', 'Hello World!');
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="hello_world.xlsx"');
header('Cache-Control: max-age=0');
$writer = new Xlsx($spreadsheet);
$writer->save('php://output');
exit;
使用 PHP 原生函数处理 CSV 文件
如果只需要处理简单的 CSV 文件,可以使用 PHP 的原生函数。
读取 CSV 文件:

$file = fopen('example.csv', 'r');
while (($line = fgetcsv($file)) !== false) {
print_r($line);
}
fclose($file);
写入 CSV 文件:
$file = fopen('example.csv', 'w');
$data = [
['Name', 'Email'],
['John Doe', 'john@example.com'],
['Jane Doe', 'jane@example.com']
];
foreach ($data as $row) {
fputcsv($file, $row);
}
fclose($file);
使用 SimpleExcel 库
SimpleExcel 是一个轻量级的 PHP 库,适合简单的 Excel 操作。

安装 SimpleExcel:
composer require faisalman/simple-excel-php
读取 Excel 文件:
require 'vendor/autoload.php';
use SimpleExcel\SimpleExcel;
$excel = new SimpleExcel('csv');
$excel->parser->loadFile('example.csv');
$rows = $excel->parser->getField();
print_r($rows);
写入 Excel 文件:
require 'vendor/autoload.php';
use SimpleExcel\SimpleExcel;
$excel = new SimpleExcel('csv');
$data = [
['Name', 'Email'],
['John Doe', 'john@example.com'],
['Jane Doe', 'jane@example.com']
];
$excel->writer->setData($data);
$excel->writer->saveFile('example');
注意事项
- PhpSpreadsheet 功能强大,但处理大文件时可能消耗较多内存。
- 对于大型文件,考虑使用流式处理或分批处理。
- CSV 文件处理简单,但不支持 Excel 的高级功能如样式、公式等。






