2

背景

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

你为什么需要它?

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

那有什么问题呢?

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

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

这基本上只是应该获取一个文件,它将所有其他文件作为电子表格添加到该文件中。我用这个问题作为指导。

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

Error: Class 'PHPExcel_IOFactory' not found 

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

你试过什么?

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

然后我尝试将它添加到我的 -fileloadEssentials()中的 -function 中PHPExcelHelper.php,就像这个一样,然后我只是添加了这个:

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

没运气。

而且我也尝试通过public $helpers = array('PHPExcel','PHPExcel/IOFactory');在我的控制器中使用来调用它,但这只是要求一个不存在的助手。所以这也没有给我运气。

你想从我们这里得到什么?

任何有助于使其真正发挥作用的帮助。我已经尝试过我认为包含 IOFactory 的合乎逻辑的方法,但没有成功。有人可以告诉我如何让 PHPExcel 的 IOFactory 工作吗?

4

2 回答 2

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'));
于 2013-10-09T10:26:18.660 回答
1

将此行放在页面顶部

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

请更改供应商路径。

于 2014-07-18T10:12:52.570 回答