PhpSpreadsheet for PHP:完整指南及示例

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程
\n

PhpSpreadsheet 用于 PHP:完整指南及示例

\n\n
\n

1. 什么是 PhpSpreadsheet 以及为什么需要它

\n

PhpSpreadsheet 是一个强大的 PHP 库,用于读取、写入和管理 Excel (XLSX, XLS)、LibreOffice Calc (ODS)、CSV、HTML 等格式的电子表格。它是流行但已过时的 PHPExcel 库的继承者,后者于 2017 年停止开发。PhpSpreadsheet 完全按照现代 PHP 标准(PSR-4、PSR-7、PSR-12)重写,支持处理大量数据、复杂公式、样式、图表和条件格式。

\n

为什么需要它?在 Web 开发中,经常需要将数据库中的数据导出为 Excel 报表、导入用户上传的表格、生成发票、价目表或财务文档。PhpSpreadsheet 允许以编程方式完成这些操作,无需在服务器上安装办公套件。它支持超过 30 种文件格式,包括 XLSX、ODS、CSV、HTML、PDF(通过外部库),并且可以处理公式、条件格式、合并单元格、图像和批注。

\n

该库正在积极开发中(GitHub 上超过 3000 颗星),并用于 Laravel Excel、PhpOffice Suite 等项目和许多企业系统中。它非常适合创建报表、数据迁移、文档工作流自动化以及与 CRM/ERP 系统集成。

\n
\n\n
\n

2. 安装

\n

PhpSpreadsheet 通过 Composer(PHP 的标准依赖管理器)安装。请确保您已安装 PHP 7.4 或更高版本(推荐 8.0+)。

\n
composer require phpoffice/phpspreadsheet
\n

安装后,项目中会出现 vendor 文件夹和 composer.json 文件。要使用该库,只需包含自动加载器:

\n
require 'vendor/autoload.php';
\n

如果您使用框架(Laravel、Symfony),该库通常通过服务提供者自动加载。

\n
\n\n
\n

3. 快速入门——最小工作示例

\n

让我们创建一个简单的脚本,生成一个包含数据表的 Excel 文件并提供下载:

\n
getActiveSheet();\n\n// 2. 填充单元格\n$sheet->setCellValue('A1', '姓名');\n$sheet->setCellValue('B1', '邮箱');\n$sheet->setCellValue('A2', '伊万·伊万诺夫');\n$sheet->setCellValue('B2', 'ivan@example.com');\n$sheet->setCellValue('A3', '彼得·彼得罗夫');\n$sheet->setCellValue('B3', 'petr@example.com');\n\n// 3. 设置下载头\nheader('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');\nheader('Content-Disposition: attachment;filename="users.xlsx"');\nheader('Cache-Control: max-age=0');\n\n// 4. 将文件写入输出\n$writer = new Xlsx($spreadsheet);\n$writer->save('php://output');\nexit;
\n

此代码创建一个包含两行数据的 users.xlsx 文件。您可以在 Excel 或 LibreOffice Calc 中打开它。

\n
\n\n
\n

4. 主要方法/函数/类

\n \n

4.1. Spreadsheet::__construct()

\n

签名: new Spreadsheet()

\n

功能: 创建一个新的空文档,默认包含一个工作表。

\n
$spreadsheet = new Spreadsheet();\n$sheet                    

推荐