首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PHPSpreadsheet不适用于PHP7.3.26版

PHPSpreadsheet不适用于PHP7.3.26版
EN

Stack Overflow用户
提问于 2021-10-06 08:20:53
回答 2查看 783关注 0票数 1

我已经在7.2上测试过了,它正在工作。当我把这段代码移到7.3版本时,它不工作了。我没有使用composer就安装了PHPSpreadsheet

代码语言:javascript
运行
复制
<?php
namespace PhpOffice;
include ".\PhpOffice\autoload.php";
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
use PhpOffice\PhpSpreadsheet\Style\Border;
use PhpOffice\PhpSpreadsheet\Style\Color;

$htmlString = "<p>hello</p>";
$fileName = "myExcel";
$CntDisposition = "Content-Disposition: attachment;filename=";
$CntDisposition = $CntDisposition . $fileName . ".xls";
header($CntDisposition);
header('Cache-Control: max-age=0');
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Html();
$spreadsheet = $reader->loadFromString($htmlString);
$writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Xls');
$writer->save('php://output');
?>

失败,并显示以下错误,

当我在名称空间之前添加ini_set('display_errors', 1); error_reporting(E_ALL);时,它失败了,错误为500。但是,当我在名称空间行下面添加此代码时,文件已下载。但在文件中使用了followin stacktrack,

代码语言:javascript
运行
复制
<br />
<b>Warning</b>:  include(.\PhpOffice\autoload.php): failed to open stream: No such file or directory in <b>/home/u527331572/domains/thestory.host/public_html/adminPanel/adminPages/excel.php</b> on line <b>8</b><br />
<br />
<b>Warning</b>:  include(): Failed opening '.\PhpOffice\autoload.php' for inclusion (include_path='.:/opt/alt/php73/usr/share/pear') in <b>/home/u527331572/domains/thestory.host/public_html/adminPanel/adminPages/excel.php</b> on line <b>8</b><br />
<br />
<b>Fatal error</b>:  Uncaught Error: Class 'PhpOffice\PhpSpreadsheet\Reader\Html' not found in /home/u527331572/domains/thestory.host/public_html/adminPanel/adminPages/excel.php:20
Stack trace:
#0 {main}
  thrown in <b>/home/u527331572/domains/thestory.host/public_html/adminPanel/adminPages/excel.php</b> on line <b>20</b><br />

所提到的文件可以在提到的地方找到

EN

回答 2

Stack Overflow用户

发布于 2021-10-06 08:31:58

你更新composer.json了吗?

我在PHPOffice项目上看到过:

代码语言:javascript
运行
复制
"require": {
        "php": "^7.2 || ^8.0",
票数 0
EN

Stack Overflow用户

发布于 2021-10-06 09:06:15

您可以尝试通过composer composer require phpoffice/phpspreadsheet将其安装在单独的文件夹/项目中

  1. 确保您的PHP服务器设置为7.3.+
  2. 尝试以下测试代码,然后将其与您的解决方案进行比较,您将看到所需的更改,因为在7.2中工作的PHP电子表格版本在PHP 7.3.+中不兼容,因为有许多PHP 7.2的本机函数已被弃用

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69462160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档