背景
我在我的应用中使用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工作吗?
答案 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更改供应商路径。