xlsx / 数组
xlsx/数组 - PHP 中读取、创建和写入电子表格文档 - 电子表格引擎
Requires
- php: ^7.4 || ^8.0
- ext-ctype: *
- ext-dom: *
- ext-fileinfo: *
- ext-gd: *
- ext-iconv: *
- ext-libxml: *
- ext-mbstring: *
- ext-simplexml: *
- ext-xml: *
- ext-xmlreader: *
- ext-xmlwriter: *
- ext-zip: *
- ext-zlib: *
- ezyang/htmlpurifier: ^4.15
- maennchen/zipstream-php: ^2.1 || ^3.0
- markbaker/complex: ^3.0
- markbaker/matrix: ^3.0
- psr/http-client: ^1.0
- psr/http-factory: ^1.0
- psr/simple-cache: ^1.0 || ^2.0 || ^3.0
This package is auto-updated.
Last update: 2024-09-11 05:55:58 UTC
README
PhpSpreadsheet 是一个用纯 PHP 编写的库,提供了一组类,允许您读取和写入各种电子表格文件格式,例如 Excel 和 LibreOffice Calc。
PHP 版本支持
LTS:对于 PHP 版本的维护期将仅在该 PHP 版本的生命周期结束后延长六个月。
目前所需的最小 PHP 版本是 PHP 7.4,我们将 支持该版本 直到 2023 年 6 月 28 日。
查看 composer.json 了解其他要求。
安装
使用 composer 将 PhpSpreadsheet 安装到您的项目中
composer require phpoffice/phpspreadsheet
如果您正在开发机器上构建安装程序,该机器的 PHP 版本与将要部署的服务器不同,或者您的 PHP CLI 版本与运行时(例如 php-fpm 或 Apache 的 mod_php)不同,那么在安装之前您可能需要将以下内容添加到您的 composer.json
{
"require": {
"phpoffice/phpspreadsheet": "^1.23"
},
"config": {
"platform": {
"php": "7.4"
}
}
}
然后运行
composer install
以确保获取到与您的部署环境匹配的正确依赖项。
有关更多详细信息,请参阅 CLI 与应用程序运行时。
其他安装选项
如果您想写入 PDF,或者在将数据写入 HTML 或 PDF 时包含图表,那么您需要安装额外的库
对于 PDF 生成,您可以安装以下任何一个,然后配置 PhpSpreadsheet 以指示您将使用哪个库
- mpdf/mpdf
- dompdf/dompdf
- tecnickcom/tcpdf
然后使用以下方式配置 PhpSpreadsheet
// Dompdf, Mpdf or Tcpdf (as appropriate) $className = \PhpOffice\PhpSpreadsheet\Writer\Pdf\Dompdf::class; IOFactory::registerWriter('Pdf', $className);
或您选择的库的适当 PDF 写入包装器。
图表导出
对于图表导出,我们支持以下包,您也需要使用 composer require 命令自行安装
- jpgraph/jpgraph(此包在 4.0 版本后已放弃。您可以从 jpgraph.net 手动下载支持 PHP 8 及以上版本的最新版本)
- mitoteam/jpgraph(具有 PHP 8.1 支持的分支)
然后使用以下方式配置 PhpSpreadsheet
Settings::setChartRenderer(\PhpOffice\PhpSpreadsheet\Chart\Renderer\JpGraph::class); // to use jpgraph/jpgraph //or Settings::setChartRenderer(\PhpOffice\PhpSpreadsheet\Chart\Renderer\MtJpGraphRenderer::class); // to use mitoteam/jpgraph
如果您想生成包含图表的 HTML 或 PDF 文件,这些库是必需的。
文档
在官方文档中了解更多信息,包括安装说明。或者查看API 文档。
请在StackOverflow上提出您的支持问题,或在Gitter上快速聊天。
Patreon
我现在正在运行一个 Patreon 来支持我在 PhpSpreadsheet 上的工作。
支持者将能够访问关于使用 PhpSpreadsheet 的文章,以及如何使用其一些更高级特性的信息。
已向Patreon支持者提供的帖子
- 约会游戏
- 探讨MS Excel(以及PhpSpreadsheet)如何处理日期和时间值。
- 循环的循环
- 关于如何在工作表中迭代行和单元格的建议。
下一篇文章(目前正在撰写)将是
- 面具背后
- 探讨数字格式掩码。
我的目标是每月至少发布一篇文章,详细探讨MS Excel的一些功能,以及如何在PhpSpreadsheet中使用该功能,或者如何执行PhpSpreadsheet中的不同活动。
未来计划发布的文章包括以下主题
- 表格
- 结构化引用
- 自动筛选
- 数组公式
- 条件格式
- 数据验证
- 公式调试
- 值绑定
在为期六个月的独家Patreon支持者专享期后,文章将被纳入库的公共文档中。
PHPExcel与PhpSpreadsheet有什么不同?
PhpSpreadsheet是PHPExcel的下一个版本。它打破了兼容性,以显著提高代码库质量(命名空间、PSR合规性、使用最新的PHP语言功能等)。
因为所有努力都转向了PhpSpreadsheet,PHPExcel将不再维护。所有针对PHPExcel的贡献、补丁和新增功能,应针对PhpSpreadsheet的master分支。
你需要迁移吗?有一个自动化工具。
许可证
PhpSpreadsheet遵循MIT许可证。