原创开发运维 本文章已被<常用Composer包经典推荐>专题收录

PHP实现读写Excel文件的经典Composer包phpoffice/phpspreadsheet使用详记

本文阅读 20 分钟
首页 开发运维 正文

在PHP开发中,尤其是涉及到批量导入导出生成办公数据表格场景下,读取Excel文件数据以及生成Excel表格文件功能必不可少,而且有时要生成复杂结构的表格,phpoffice下的phpspreadshee包无疑能很好满足你的需求,使用Composer引入即可非常方便,也可以去Github下载源码自己集成。
phpspreadsheet的Composer官方地址:https://packagist.org/packages/phpoffice/phpspreadsheet
Github地址:https://github.com/PHPOffice/PhpSpreadsheet
官方文档地址:https://phpspreadsheet.readthedocs.io/en/latest/

概述

PhpSpreadsheet 是一个用纯PHP编写的库,它提供了一组允许您读取和写入各种电子表格文件格式(如 Excel 和 LibreOffice Calc)的类。

支持的文件格式

格式阅读写作
开放文档格式/OASIS (.ods)
Office Open XML (.xlsx) Excel 2007 及更高版本
BIFF 8 (.xls) Excel 97 及更高版本
比夫 5 (.xls) Excel 95
电子表格 ML (.xml) Excel 2003
数字
HTML
西尔克
CSV文件
PDF(使用需要单独安装的 TCPDF、Dompdf 或 mPDF 库)

PHP版本支持

对 PHP 版本的支持只会在该 PHP 版本生命周期结束后的六个月内得到维护 。
目前所需的 PHP 最低版本为 PHP 7.4,将支持该版本至 2023 年 6 月 28 日。
有关其他要求,请参阅composer.json

安装

使用composer将 PhpSpreadsheet 安装到你的项目中:

composer require phpoffice/phpspreadsheet

如果您打算使用它们,也可以下载文档和示例:

composer require phpoffice/phpspreadsheet --prefer-source

php-fpm如果您在开发机器上构建您的安装,而该开发机器的 PHP 版本与将要部署的服务器不同,或者如果您的 PHP CLI 版本与您的运行时(例如Apache 的)不同,那么您可能mod_php需要在安装之前将以下内容添加到您的composer.json:

{
    "require": {
        "phpoffice/phpspreadsheet": "^1.28"
    },
    "config": {
        "platform": {
            "php": "7.4"
        }
    }
}

然后运行

composer install

以确保检索到正确的依赖项以匹配您的部署环境。

其他安装选项

如果您想写入 PDF,或者在写入 HTML 或 PDF 时包含图表,那么您将需要安装额外的库:

PDF

对于 PDF 生成,您可以安装以下任何一个,然后配置 PhpSpreadsheet 以指示您将使用哪个库:

并使用以下命令配置 PhpSpreadsheet:

// Dompdf, Mpdf or Tcpdf (as appropriate)
$className = \PhpOffice\PhpSpreadsheet\Writer\Pdf\Dompdf::class;
IOFactory::registerWriter('Pdf', $className);

或您选择安装的库的适当 PDF Writer 包装器。

图表导出

对于图表导出,我们支持以下包,您还需要使用以下包自行安装composer require

  • jpgraph/jpgraph (这个包在4.0版本就被废弃了,你可以到jpgraph.net手动下载支持PHP 8及以上的最新版本)
  • mitoteam/jpgraph(支持 php 8.1 的分支)

然后使用以下命令配置 PhpSpreadsheet:

// to use jpgraph/jpgraph
Settings::setChartRenderer(\PhpOffice\PhpSpreadsheet\Chart\Renderer\JpGraph::class);
//or
// to use mitoteam/jpgraph
Settings::setChartRenderer(\PhpOffice\PhpSpreadsheet\Chart\Renderer\MtJpGraphRenderer::class);

如果您想要生成包含图表的 HTML 或 PDF 文件,那么这些库中的一个或另一个是必需的;或者从您的代码中将图表呈现为图像格式。它们不需要定义用于写入Xlsx文件的图表。其他文件格式不支持编写图表。

原创文章,作者:平凡老赵,未经允许不得转载,出处:https://www.pfjsb.com/kfyw/composer-phpoffice-phpspreadsheet.html
-- 展开阅读全文 --
Markdown语法最全汇总精心整理
« 上一篇 04-21
PHP生成pdf文件的几个composer包
下一篇 » 04-23

热门文章

标签TAG