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

时间:2018-01-05 06:52:32

标签: typo3 phpexcel extbase typo3-7.6.x

我正在使用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..

为什么会这样?

1 个答案:

答案 0 :(得分:2)

命名空间中的问题。只需改变它如下。

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

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

\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;
}

更换此更改后,您需要安装/卸载扩展程序。