2013-02-03 54 views
3

我正在尝试使用require来加载ExcelPHP API来操作CSV电子表格。我正在使用PHP 5.4.6,Apache 2.4.2,MySQL 5.5.27和Xdebug 2.2.1的EasyPHP 12.1。我在Windows 7难度设置ExcelPHP

当我试图运行下面的代码:

 
require_once('classes/PHPexcel/Autoloader.php'); 

$mySheet = new PHPExcel(); 

我得到一个致命的错误:

Notice: Use of undefined constant PHPEXCEL_ROOT - assumed 'PHPEXCEL_ROOT' in C:\Program Files\EasyPHP-12.0\www\Classes\Classes\PHPExcel\Autoloader.php on line 73

Fatal error: Class 'PHPExcel_Shared_ZipStreamWrapper' not found in C:\Program Files\EasyPHP-12.0\www\Classes\Classes\PHPExcel\Autoloader.php on line 31

我曾尝试在自动装注释掉31行。 PHP文件,并且可以防止致命错误,但是API无法正常工作,而PHP无法识别PHPExcel类。

有人可以帮我弄清楚如何让我的图书馆工作?提前致谢!

回答

3

加载PHPExcel类需要一次,而不是自动加载器(如Seth)所说的。区分大小写也是一个潜在的问题,因为除非你做对你的脚本将不无差错传输:

require_once('classes/PHPexcel/Autoloader.php'); 

应该

require_once('classes/PHPExcel.php'); 

和图书馆是PHPExcel,不ExcelPHP你在您的主题行中调用它

+0

谢谢马克,我非常感谢。 –

3

而非目前的需要声明,你应该叫

require_once('classes/PHPExcel.php'); 

该文件定义常量PHPEXCEL_ROOT您缺少,然后调用自动加载机文件require_once()。它还载入整个图书馆使用的主要class PHPExcel

+0

太谢谢你了!这固定了一切。 –

+0

不客气。请务必将@MarkBaker的回复标记为正确答案。 –

0

这可能已经来得太迟了,因为PHPExcel已转换为PHPSpreadsheet,但如果您仍在使用PHPExcel并且您想使用自动加载器,那么您所要做的就是定义PHPExcel根在需要自动加载器之前。

define('PHPEXCEL_ROOT', dirname(__FILE__).'/'); 

我用它作曲家我自定义的MVC框架

require_once ROOT . '/vendor/autoload.php'; 
PHPExcel_Autoloader::Register();