PHPExcel
是一个 PHP 库,用于读取、写入和操作 Excel 文件。它支持多种 Excel 文件格式,包括 .xls
和 .xlsx
,以及其他类似格式的文件。
注:它已经被 PhpSpreadsheet
所取代,PhpSpreadsheet
是 PHPExcel
的继任者,并提供了更多功能和更好的性能。
PHPExcel 的主要功能
- 读取 Excel 文件:
- 可以从 Excel 文件中读取数据,包括
.xls
和.xlsx
文件格式。 - 支持读取工作簿、工作表、单元格数据等。
- 可以从 Excel 文件中读取数据,包括
- 写入 Excel 文件:
- 可以将数据写入 Excel 文件,并保存为
.xls
和.xlsx
格式。 - 支持创建新工作簿、工作表,并向单元格中写入数据。
- 可以将数据写入 Excel 文件,并保存为
- 操作 Excel 文件:
- 支持修改现有的 Excel 文件,包括添加、删除和修改工作表。
- 可以设置单元格的样式(如字体、颜色、边框、对齐方式等)。
- 格式支持:
- 支持多种 Excel 格式,如
.xls
、.xlsx
、.csv
等。 - 还支持一些特殊的格式,如日期和时间格式、货币格式等。
- 支持多种 Excel 格式,如
- 其他功能:
- 可以创建图表。
- 支持公式和函数计算。
- 可以设置单元格的公式。
PHPExcel 的基本用法
1. 安装
PHPExcel
通常通过 Composer 安装
composer require phpoffice/phpexcel
2. 读取 Excel 文件
<?php
require ‘vendor/autoload.php’;
use PHPExcel_IOFactory;
$inputFileName = ‘path/to/existing-file.xlsx’;
$objPHPExcel = PHPExcel_IOFactory::load($inputFileName);
$sheet = $objPHPExcel->getActiveSheet();
$data = $sheet->toArray(null, true, true, true);
// 输出数据
print_r($data);
?>
3. 写入 Excel 文件
<?php
require ‘vendor/autoload.php’;
use PHPExcel;
use PHPExcel_Writer_Excel2007;
// 创建新的 Excel 对象
$objPHPExcel = new PHPExcel();
$sheet = $objPHPExcel->getActiveSheet();
// 设置数据
$sheet->setCellValue(‘A1’, ‘Hello’);
$sheet->setCellValue(‘B1’, ‘World’);
// 保存 Excel 文件
$writer = new PHPExcel_Writer_Excel2007($objPHPExcel);
$writer->save(‘path/to/new-file.xlsx’);
?>
4. 设置单元格样式
<?php
require ‘vendor/autoload.php’;
use PHPExcel;
use PHPExcel_Writer_Excel2007;
use PHPExcel_Style_Alignment;
use PHPExcel_Style_Fill;
use PHPExcel_Style_Font;
// 创建新的 Excel 对象
$objPHPExcel = new PHPExcel();
$sheet = $objPHPExcel->getActiveSheet();
// 设置数据
$sheet->setCellValue(‘A1’, ‘Styled Text’);
// 设置单元格样式
$sheet->getStyle(‘A1’)->applyFromArray(array(
‘font’ => array(
‘bold’ => true,
‘color’ => array(‘rgb’ => ‘FF0000’),
‘size’ => 15,
‘name’ => ‘Verdana’
),
‘fill’ => array(
‘type’ => PHPExcel_Style_Fill::FILL_SOLID,
‘color’ => array(‘rgb’ => ‘FFFF00’)
),
‘alignment’ => array(
‘horizontal’ => PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
‘vertical’ => PHPExcel_Style_Alignment::VERTICAL_CENTER
)
));
// 保存 Excel 文件
$writer = new PHPExcel_Writer_Excel2007($objPHPExcel);
$writer->save(‘path/to/styled-file.xlsx’);
?>
注意事项
- 已弃用:
PHPExcel
在 2017 年停止更新,建议使用PhpSpreadsheet
作为替代。PhpSpreadsheet
提供了更好的性能和更多的功能,并且是PHPExcel
的官方继任者。 - 性能: 对于大型文件操作,
PHPExcel
可能会比较慢,PhpSpreadsheet
在性能上有很大的改进。