7

如何将PHPExcel集成到我的 Zend 应用程序中。

我的实际文件夹结构如下:

/application
  controllers
  views  
  etc...
/library
  My
  Zend
  PHPExcel
/public
  index.php

我已经通过使用(在 index.php 中)包含了“我的”库:

require_once 'Zend/Loader/Autoloader.php';
$autoloader = Zend_Loader_Autoloader::getInstance();
$autoloader->registerNamespace('My_');

现在我还想在我的一个控制器中使用PHPExcel,例如:

$exc = PHPExcel_IOFactory::load('test.xls');
$excelWorksheet = $exc->getActiveSheet();

我必须做些什么才能使其工作并摆脱Class 'PHPExcel_IOFactory' not found异常?

谢谢你。
-lony

PS:一个简单$autoloader->registerNamespace('PHPExcel_');的是行不通的。我测试了它。

4

6 回答 6

9

将 PHPExcel 库放入 /library 文件夹,如下所示:

/application
...
/library
    /PHPExcel
    /PHPExcel.php

接下来,在您的 application.ini 配置文件中,添加以下内容:

autoloaderNamespaces[] = "PHPExcel_"
autoloaderNamespaces[] = "PHPExcel"

那应该这样做。Autoloader 负责其余的工作,您可以开始使用示例代码来读取 Excel 文件。

更新:按照评论者的建议添加了额外的 autoloaderNamespace

于 2011-01-26T14:52:49.283 回答
0

我找到了一种解决方案:

require_once 'PHPExcel/PHPExcel/IOFactory.php';

如果有人有更好的,请继续发帖!

@BoltClock:感谢您更新标签。

于 2011-01-20T03:08:12.223 回答
0

它需要在您的包含路径中。

如果您需要为不遵循 PSR-0 的其他库定制自动加载器,也可以使用:Autoload PhpThumb with Zend Framework(免责声明:我是作者)。

于 2011-05-27T19:42:42.460 回答
0

我知道问这个问题已经 2 年了,但它可能对某人有所帮助;最简单的方法(不是最佳方法)是在您的 Public 中提取 PHPExcel 文件夹,然后使用旧方法 ex;(在您的控制器操作中):

                include 'PHPExcel.php';
                include 'PHPExcel/Writer/Excel2007.php';

                $myobject = new PHPExcel();
于 2013-05-15T19:24:36.593 回答
0

此外,我在控制器类中 PHPExcel_IOFactory 使用的行上添加了一个“\”:

public function reporteauditoriaAction()
{
    $objPHPExcel = new \PHPExcel();
    $objPHPExcel->createSheet();
    $objPHPExcel->getActiveSheet()->setCellValue('A1', 'Alejin Wbn');
    $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, "Excel2007");
    $objWriter->save("pruebaPhpExcelZend.xlsx"); 
    //$objPHPExcel->disconnectWorksheets();
    //unset($objPHPExcel);
    $consulta= "Reporte Auditoria, Reconocio los Archivos";
    $vista = new ViewModel(array( "consulta"=>$consulta));
    return $vista;        
}
于 2016-01-24T18:06:54.503 回答
0

我有同样的问题,我解决了它更新作曲家和我的项目文件夹 phpoffice 保存在供应商模块中(不在 lib 中)。并在您看到的任何地方在 PHPExcel_IOFactory 上添加“\”。

于 2016-11-11T11:05:25.237 回答