找不到'PHPExcel_IOFactory'类 - CakePHP& PHPExcel

时间:2013-10-09 10:10:58

标签: cakephp phpexcel cakephp-2.2

背景

我在我的应用中使用PHPExcel的IOFactory时遇到问题。如果我想从头开始生成excel文档,我的PHPExcel帮助器就可以工作了(我的应用程序每周创建大约20个excel表,没有问题)。

为什么需要它?

我现在需要合并一些工作表(上传和生成一般工作表,然后将其发送给谁。问题是所有工作表都是由另一个人生成的。所以他们将所有这些工作表上传到应用程序,它结合了纸张并将其发送出去。

那么问题是什么?

在我的PHPExcelHelper.php文件中,我添加了以下功能:

public function createMasterFile($ExcelFile) {
    $MasterFile = PHPExcel_IOFactory::load($ExcelFile);
    return $MasterFile;
}

这基本上只是一个文件,它将所有其他文件添加为电子表格。我正在使用this问题作为指南。

但是,它会引发以下错误:

Error: Class 'PHPExcel_IOFactory' not found 

这告诉我它找不到那个类( duh )并且我需要包含它。

您尝试了什么?

我尝试通过将require_once('PHPExcel/IOFactory.php');添加到位于PHPExcel.php - 文件夹中的Vendors文件的末尾来直接添加它。没有运气。

然后我尝试将其添加到我的loadEssentials() - 我的PHPExcelHelper.php文件中的函数,就像this one一样,然后我添加了这个:

App::import('Vendor', 'PHPExcel/IOFactory');
if (!class_exists('PHPExcel/IOFactory')) {
    throw new CakeException('Vendor class IOFactory not found!');
}

没有运气。

我也试过在我的Controller中使用public $helpers = array('PHPExcel','PHPExcel/IOFactory');来调用它,但这只是要求一个不存在的帮助器。所以这也没有给我带来好运。

您对我们有什么要求?

真正让这项工作有所帮助。我已经尝试了我认为包含IOFactory的逻辑方法,但没有成功。有人可以告诉我如何让PHPExcel的IOFactory工作吗?

2 个答案:

答案 0 :(得分:4)

假设你的文件夹结构是这样的

App
    Vendor
        PHPExcel
            PHPExcel.php
            PHPExcel
                IOFactory.php

你应该使用

App::import('Vendor', 'PHPExcel', array('file' => 'PHPExcel'.DS.'PHPExcel.php'));
App::import('Vendor', 'PHPExcel_IOFactory', array('file' => 'PHPExcel'.DS.'PHPExcel'.DS.'IOFactory.php'));

答案 1 :(得分:1)

将此行放在页面顶部

App :: import('Vendor','PHPExcel',array('file'=>'excel / PHPExcel.php'));

plz更改供应商路径。