无法分析 class:可能未加载或 typo3 中没有自动加载器以使用 phpexcel 导出

Could not analyse class: maybe not loaded or no autoloader in typo3 for export using phpexcel

我正在使用 phpexcel 库编写导出功能。我已将库包含在 typo3conf/ext/extension_name/Classes/Library/PHPExcel 中。并且还包括文件 typo3conf/ext/extension_name/Classes/Library/PHPExcel.php。并将此文件注入到我的 typo3 extbase 控制器中

/**
* PHPExcel
*
* @var \VendorName\ExtensionName\Classes\PHPExcel
* @inject
*/
protected $PHPExcel;

并将其作为

调用到我的导出函数中
public function exportxlsAction() {
    $objPHPExcel = new \PHPExcel();
}

单击后端模块时会抛出错误

Could not analyse class: "VendorName\ExtensionName\Classes\PHPExcel" maybe not loaded or no autoloader? Class VendorName\ExtensionName\Classes\PHPExcel does not exist..

为什么会这样?

你的名字有问题space。只需像下面这样更改即可。

\VendorName\ExtensionName\Classes\PHPExcel to \VendorName\ExtensionName\Library

此外,如果您在此路径上添加了所有 PHPExcel 库 \VendorName\ExtensionName\Classes\Library\PHPExcel,那么您的名字 space 如下所示。

\VendorName\ExtensionName\Library\PHPExcel

另一种方式

在您的 ext_emconf.php 文件中。添加以下代码。

'autoload' => [
    'classmap' => [
      'Classes',
      'Classes/Library/PHPExcel/PHPExcel.php',
   ]
]

你的控制器文件代码如下。

/**
* PHPExcel
*
* @var \PHPExcel
* @inject
*/
protected $PHPExcel = null;

你照原样工作。如下所示。

public function exportxlsAction() {
    $objPHPExcel = $this->PHPExcel;
}

替换此更改后,您需要一次 install/Uninstall 扩展。