3

好的,所以我在这方面花了很多时间,这显然超出了我的能力范围——我正在创建一个 WordPress 插件,并且我想包含 PHPSpreadsheet 库。我按照说明使用 Composer ( https://phpspreadsheet.readthedocs.io/en/develop/#installation ) 安装库,并将示例代码放在插件的子文件中:

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');

现在,我很快发现我无法将带有“use”声明的两行放在插件的这个特定子文件中 - 所以我将前三行移到了我的主插件文件中,一切都很好 - 看起来像我抓住了'autoload.php'就好了,'use'语句没有抛出任何错误。

回到我的子文件中,我留下了其余的代码,但我现在得到的只是错误信息:

PHP Fatal error:  Class 'Spreadsheet' not found

很明显,这里有一些关于命名空间和范围的东西我不明白。目前这是我的主插件文件中的代码:

require 'vendor/autoload.php';

use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;

global $spreadsheet;
$GLOBALS['spreadsheet'] = new Spreadsheet();

我现在可以访问我的子文件中的“电子表格”变量,但这显然并不理想。

任何帮助任何人?谢谢!

4

0 回答 0