如何在不安装的情况下使用 PhpSpreadsheet(如 PHPExcel)

Posted

技术标签:

【中文标题】如何在不安装的情况下使用 PhpSpreadsheet(如 PHPExcel)【英文标题】:How to use PhpSpreadsheet without installation (like PHPExcel) 【发布时间】:2018-07-23 20:31:58 【问题描述】:

根据phpSpreadsheet Doc,需要用composer安装。 就我而言,我只有一个没有终端但没有 Plesk 的网络空间。是否可以使用 PhpSpreadsheet,就像使用 PHPExcel 一样,您只需将文件放在任何位置? 我该怎么做才能让它运行?我没有找到更多信息如何仅使用 FTP 网络服务器访问。

【问题讨论】:

【参考方案1】:

你的情况有两种选择!

答案:1

没有终端的替代方法

Run composer with a PHP script in browser

答案:2

第三方网站,允许在线下载作曲家包。获取PHP电子表格最新版本。

https://php-download.com/package/phpoffice/phpspreadsheet

奖励您几乎可以下载任何作曲家包@https://php-download.com

【讨论】:

您引导我找到最佳解决方案。在第一个链接中,@Sven 给出了在本地安装作曲家和附加软件然后上传的提示。 所以这确实有效。很容易。唯一的麻烦是安装所有必需的 php 扩展,直到可以在本地安装 PhpSpreadsheet 而没有错误。安装后 php7.0-cli 我还必须安装: * php7.0-gd * php7.0-zip * php7.0-mbstring 之后我可以安装 PhpSpreadsheet就像在Doc 中一样,只需将生成的文件夹和文件与 ftp 放在网络空间上。 hello World 示例立即生效。 现在已经成功地使用 7-Zip 应用程序解压缩它:7-zip.org 非常感谢!我受不了“作曲家”的废话。应该通过在主脚本中包含一个 .php 文件来包含 PHP 库,就是这样 我不明白为什么人们强迫 composer horsesh!t,我永远无法在 windows7 和 10 下安装它【参考方案2】:

您是否考虑过在本地安装 composer,按照说明运行它,然后通过普通 FTP 将生成的文件发送到服务器?你在你的电脑上安装 composer 并运行它,然后通过 FTP/SFP 上传...

Composer 并非“必须”在用户下载页面时实时运行,而是“主要”在您的本地计算机上运行并生成稍后上传到服务器的文件和依赖项。它可以更新您服务器上的文件,但这是一种方便而非必需。

【讨论】:

虽然这可能是最实用的解决方案,但您必须记住,它完全绕过了生产系统上的 PHP 扩展需求检查。因此,您必须格外小心地手动检查。 @PowerKiKi 是的,它会在本地检查所有扩展要求和依赖项,因此您必须确保将它们全部上传。当您上传时,您只需上传整个文件夹,如果有疑问,您是安全的。另一方面,我不相信事情会在我不知情的情况下自动更新。如果我认为更新是必要且稳定的,我完全愿意成为上传更新的人。【参考方案3】:

通过注册自定义自动加载器和 PSR simplecache 自动加载器,可以完全解决作曲家安装 - 请参阅:

https://github.com/PHPOffice/PhpSpreadsheet/issues/31#issuecomment-354502740

请注意,通过 composer 安装是目前唯一官方支持的解决方案。

【讨论】:

【参考方案4】:

我遇到了同样的问题。我从 github 上下载了 Library https://github.com/PHPOffice/PhpSpreadsheet 并做了一些改动

    更改了其命名空间 使用了 autoload.php 文件 成功了

不需要 Composer 的库在这个链接中 https://github.com/YoloZoloo/PhpSpreadSheet/tree/master

您可以将文件夹名称更改为您喜欢的任何文件夹。 从你的服务器加载[AnyFolder]->table.php,然后按「ダウンロード」。

如果遇到任何问题,请回复我

【讨论】:

【参考方案5】:

示例代码

require 'vendor/autoload.php'; 
use PhpOffice\PhpSpreadsheet\Spreadsheet; 
use PhpOffice\PhpSpreadsheet\Writer\Xlsx; 
$spreadsheet = new Spreadsheet(); 
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', 'Hello World !');

$writer = new Xlsx($spreadsheet);
$writer->save('hello world.xlsx');

【讨论】:

【参考方案6】:

Smartpal,感谢您的包,它运行良好!

也可以替换文件夹:

/phpspreadsheet/vendor/phpoffice/phpspreadsheet/src/

在 Smartpal 的存档中,包含来自 phpspreadsheet github 的更多新鲜资源,它也可以工作。

PS:如果您在读取以CP1252 以外的编码保存的 xls 文件时遇到问题,您必须在文件 ./src/PhpSpreadsheet/Reader/Xls.php 中寻找文字 CP1252 并将它们替换为您需要的其他值或一些命名常量甚至mb_detect_encoding()。然后它将正确读取此类 xls。

【讨论】:

用新文件替换一些文件是一个糟糕的主意,当文件被重命名或引入新文件时,它在将来的某个时候失败。你真的应该使用作曲家。

以上是关于如何在不安装的情况下使用 PhpSpreadsheet(如 PHPExcel)的主要内容,如果未能解决你的问题,请参考以下文章

如何在不安装的情况下使用 PhpSpreadsheet(如 PHPExcel)

如何在不使用 sudo 的情况下安装 virtualenv?

如何在不安装的情况下在应用程序中使用 Berkeley DB

如何在不使用 brew 的情况下使用终端将 maven 安装到 mac [重复]

如何在不使用 npm 的情况下安装 node.js 模块?

如何在不安装 2003 office web 的情况下使用 Modi