在CakePHP中使用PHPExcel

Alb*_*ert 1 php phpexcel cakephp-2.2

背景

好吧,我试着问这个问题,但它关闭得比一个可怕的安全漏洞更快.我想用PEAR的Spreadsheet Excel Writer编写一个excel文件.我无休止地谷歌一个简单的方法来做到这一点,并最终找到了一个可能真正做到这一点的帮手.

但它使用PHPExcel,因此我将不得不重写该脚本,这是我最不担心的.我只是不想现在开始,然后仍然无法让它工作.

我还根据帮助程序的要求下载了PHPExcel.

我有什么?

我有帮助器,我已经将控制器添加到控制器中,如下所示:

public $helpers = array('PhpExcel.PhpExcel'); 
Run Code Online (Sandbox Code Playgroud)

我已经在线创建(复制并粘贴)了脚本到视图中,只是为了测试它是否有效.

问题是什么

我收到一个错误:

Error: The application is trying to load a file from the PhpExcel plugin

Error: Make sure your plugin PhpExcel is in the app\Plugin directory and was loaded
Run Code Online (Sandbox Code Playgroud)

我已经将文件包含在文件APP/Vendor/PHPExcel.php夹中(因为我在某处读到如果插件不遵循MVC框架,它需要进入那里)但它仍然不起作用.还在插件目录中尝试了它并且出现了同样的错误.这是我第一次使用帮助器(希望不是最后一次)所以我对此非常无能为力.

我还在APP/View/Helper/文件夹中包含了实际的帮助器PhpExcelHelper.php.

事情是我甚至无法通过第1步.有人可以告诉我文件需要去哪里,以便我可以让它工作吗?

Bor*_*bev 6

如果你看一下Helper代码,你会注意到这里有一个叫做的函数loadEssentials:

protected function loadEssentials() {
    // load vendor class
    App::import('Vendor', 'PHPExcel/Classes/PHPExcel');
    if (!class_exists('PHPExcel')) {
        throw new CakeException('Vendor class PHPExcel not found!');
    }
}
Run Code Online (Sandbox Code Playgroud)

现在您可以看到它在PHPExcel库的Vendor文件夹中查找.你应该做的是把PHPExcel代码放入App/Vendor/.然后看看如何加载供应商包.然后帮助应该在App/View/Helper,当你立即它它应该工作.还要检查供应商中文件的raed/write/excute权限,具体取决于您的操作系统.