PHP读写Excel文件教程
在PHP开发中处理Excel文件的关键在于选择合适的工具PhpSpreadsheet并掌握其基本用法。1.推荐使用PhpSpreadsheet库,它是PHPExcel的继任者,支持xls、xlsx格式,可通过Composer安装。2.读取Excel文件流程为加载文件、获取工作表、遍历单元格内容,可使用getRowIterator和getCellIterator逐行逐列读取数据,并注意处理空单元格及公式计算值。3.写入操作包括创建对象、设置单元格内容、使用Xlsx写入器保存文件,同时需注意内存管理和文件路径
在PHP开发中处理Excel文件的关键在于选择合适的工具PhpSpreadsheet并掌握其基本用法。1. 推荐使用PhpSpreadsheet库,它是PHPExcel的继任者,支持xls、xlsx格式,可通过Composer安装。2. 读取Excel文件流程为加载文件、获取工作表、遍历单元格内容,可使用getRowIterator和getCellIterator逐行逐列读取数据,并注意处理空单元格及公式计算值。3. 写入操作包括创建对象、设置单元格内容、使用Xlsx写入器保存文件,同时需注意内存管理和文件路径权限问题。4. 常见问题包括中文乱码应检查环境与打开方式,性能问题可通过优化缓存与减少对象创建解决,文件类型识别错误可手动指定读取类型,复杂样式可能无法完全还原。

在PHP开发中,处理Excel文件的需求很常见,比如导出报表、批量导入数据等。实现这些功能并不复杂,关键在于选对工具和掌握基本用法。
1. 推荐使用的库:PhpSpreadsheet
目前最主流的处理Excel的PHP库是 PhpSpreadsheet,它是PHPExcel的继任者,支持读写xls、xlsx等多种格式。安装起来也很方便,可以通过 Composer 安装:
composer require phpoffice/phpspreadsheet
这个库文档齐全,社区活跃,适合大多数项目使用。
2. 如何读取Excel文件中的数据
读取Excel文件的基本流程是:加载文件 → 获取工作表 → 遍历单元格内容。例如:
require 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\IOFactory;
$inputFileName = './data.xlsx';
$spreadsheet = IOFactory::load($inputFileName);
$worksheet = $spreadsheet->getActiveSheet();
foreach ($worksheet->getRowIterator() as $row) {
$cellIterator = $row->getCellIterator();
$cellIterator->setIterateOnlyExistingCells(false);
$rowData = [];
foreach ($cellIterator as $cell) {
$rowData[] = $cell->getValue();
}
// 处理每一行数据
}- 如果你不确定使用哪个工作表,可以用
getSheet(0)来指定第一个工作表。 - 可以通过
$cell->getCalculatedValue()获取公式计算后的值。 - 注意有些单元格可能是空的,需要做判断避免错误。
3. 写入数据到Excel文件
写入操作包括创建新文件、填充数据、保存为Excel格式。示例代码如下:
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
// 设置单元格内容
$sheet->setCellValue('A1', '姓名');
$sheet->setCellValue('B1', '年龄');
$sheet->setCellValue('A2', '张三');
$sheet->setCellValue('B2', 25);
// 保存为Excel文件
$writer = new Xlsx($spreadsheet);
$writer->save('output.xlsx');- 支持设置样式(字体、颜色、边框等),但会稍微复杂一些。
- 导出大量数据时注意内存问题,可以使用缓存设置或分批次写入。
- 文件保存路径要确保有写权限。
4. 常见问题与注意事项
中文乱码:保存文件时默认编码没问题,但如果出现乱码,建议检查服务器环境和文件打开方式。
性能问题:处理大文件时容易占用较多内存,可通过关闭不必要的缓存、减少对象创建来优化。
文件类型识别错误:有时候自动识别文件类型失败,可以手动指定读取类型,如:
$reader = IOFactory::createReader('Xlsx'); $spreadsheet = $reader->load("file.xlsx");样式丢失:读取某些带复杂样式的Excel文件时,可能无法完全还原原样。
基本上就这些,掌握了 PhpSpreadsheet 的基本用法后,处理Excel文件就会变得简单多了。
Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。
极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。
















