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

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

【问题讨论】:

    标签: php phpexcel phpspreadsheet


    【解决方案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 并做了一些改动

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

      不需要 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。

          【讨论】:

          • 用新文件替换一些文件是一个糟糕的主意,当文件被重命名或引入新文件时,它在将来的某个时候失败。你真的应该使用作曲家。
          猜你喜欢
          • 1970-01-01
          • 2012-03-10
          • 1970-01-01
          • 1970-01-01
          • 2020-01-04
          • 2012-07-11
          • 2017-01-29
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多