在CakePHP中使用PHPExcel
背景 我试着问这个问题,但它关闭的速度比一个可怕的安全漏洞还要快。我想用PEAR的电子表格excel Writer编写一个excel文件。我不断地在谷歌上搜索一种简单的方法来完成这项工作,最后这可能真的完成了这项工作 但是它使用PHPExcel,所以我必须重写脚本,这是我最不担心的。我只是不想现在就开始,然后仍然无法让它工作 我还按照助手的要求下载了 我有什么? 我有助手,我已将助手添加到控制器中,如下所示:在CakePHP中使用PHPExcel,php,phpexcel,cakephp-2.2,Php,Phpexcel,Cakephp 2.2,背景 我试着问这个问题,但它关闭的速度比一个可怕的安全漏洞还要快。我想用PEAR的电子表格excel Writer编写一个excel文件。我不断地在谷歌上搜索一种简单的方法来完成这项工作,最后这可能真的完成了这项工作 但是它使用PHPExcel,所以我必须重写脚本,这是我最不担心的。我只是不想现在就开始,然后仍然无法让它工作 我还按照助手的要求下载了 我有什么? 我有助手,我已将助手添加到控制器中,如下所示: public $helpers = array('PhpExcel.PhpExcel'
public $helpers = array('PhpExcel.PhpExcel');
我已经在线创建(复制并粘贴)了脚本到视图中,只是为了测试它是否有效
问题出在哪里
我得到一个错误:
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
我已经将该文件包含在APP/Vendor/PHPExcel.php
文件夹中(因为我在某个地方读到,如果插件不遵循MVC框架,它需要放在那里),但它仍然不起作用。也在插件目录中尝试过,但出现了相同的错误。这是我第一次使用helpers(希望不是最后一次),所以我对此一无所知
我还将实际的助手作为PhpExcelHelper.php
包含在APP/View/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!');
}
}
现在您可以看到,它在供应商文件夹中查找PHPExcel库。您应该做的是将PHPExcel代码放入
App/Vendor/
中。然后看一看。然后,助手应该位于App/View/Helper
中,当您实例化它时,它应该可以工作。此外,还要根据您的操作系统检查供应商中文件的raed/write/excute权限。如果查看帮助程序代码,您会注意到其中有一个名为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!');
}
}
现在您可以看到,它在供应商文件夹中查找PHPExcel库。您应该做的是将PHPExcel代码放入
App/Vendor/
中。然后看一看。然后,助手应该位于App/View/Helper
中,当您实例化它时,它应该可以工作。根据您的操作系统,还要检查供应商中文件的raed/write/excute权限。我是该插件的作者,最近我对其进行了更改,使其包含供应商类并自动加载它们。希望这能解决您的问题。我是该插件的作者,最近我对其进行了更改,使其包含供应商类并自动加载它们。希望这能解决您的问题。对于那些想直接将PHPExcel集成到Cakephp(2.x)中的人,我就是这么做的,我把它放在App/Vendor文件夹中
App::Import('Vendor','PHPExcel',array('file'=>'PHPExcel/Classes/PHPExcel.php')代码>。请注意“PHPExcel.php”文件的位置,并确保它位于Cakephp文件夹中
$objPHPExcel=new PHPExcel()代码>
希望有帮助。对于那些想直接将PHPExcel集成到Cakephp(2.x)中的人,我就是这么做的,我把它放在App/Vendor文件夹中
App::Import('Vendor','PHPExcel',array('file'=>'PHPExcel/Classes/PHPExcel.php')代码>。请注意“PHPExcel.php”文件的位置,并确保它位于Cakephp文件夹中
$objPHPExcel=new PHPExcel()代码>
希望能有所帮助。PEAR电子表格Excel Writer!==PHPExcelSeems我删除了我说过要将脚本移到PHPExcel的部分(因为它看起来更完整)。现在将添加它。抱歉不幸的是,虽然我对PHPExcel本身了解一些,但我对它如何集成到CakePHP一无所知,对不起,我无能为力,不用担心。谢谢你指出我问题中的缺陷。不知道我在想什么。:)PEAR电子表格Excel编写器!==PHPExcelSeems我删除了我说过要将脚本移到PHPExcel的部分(因为它看起来更完整)。现在将添加它。抱歉不幸的是,虽然我对PHPExcel本身了解一些,但我对它如何集成到CakePHP一无所知,对不起,我无能为力,不用担心。谢谢你指出我问题中的缺陷。不知道我在想什么。:)我做了上面所有的几次,最后仔细检查后发现我的文件名与App::import语句的大小写不匹配。我做了上面所有的几次,最后仔细检查后发现我的文件名与App::import语句的大小写不匹配。