我正在尝试使用require加载ExcelPHP API来操作CSV电子表格。我正在使用EasyPHP 12.1与PHP 5.4.6,Apache 2.4.2,MySQL 5.5.27和Xdebug 2.2.1。我在Windows 7上。
当我尝试运行以下代码时:
require_once('classes/PHPexcel/Autoloader.php'); $mySheet = new PHPExcel();
我收到致命错误:
注意:使用未定义的常量PHPEXCEL_ROOT - 在第73行的C:\ Program Files \ EasyPHP-12.0 \ www \ Classes \ Classes \ PHPExcel \ Autoloader.php中假定为'PHPEXCEL_ROOT'
致命错误:第31行的C:\ Program Files \ EasyPHP-12.0 \ www \ Classes \ Classes \ PHPExcel \ Autoloader.php中找不到类'PHPExcel_Shared_ZipStreamWrapper'
我已经尝试在Autoloader.php文件中注释第31行,这可以防止致命错误,但API无法正常工作,PHP无法识别PHPExcel类。
有人可以帮我弄清楚如何让我的图书馆工作吗?提前致谢!
答案 0 :(得分:4)
将PHPExcel类加载到您的require中,而不是Autoloader(如Seth)所说。区分大小写也是一个潜在的问题,因为除非你做对,否则你的脚本不会在没有错误的情况下传输:
require_once('classes/PHPexcel/Autoloader.php');
应该是
require_once('classes/PHPExcel.php');
并且库是PHPExcel,而不是您在主题行中调用它的ExcelPHP
答案 1 :(得分:3)
您应该致电
,而不是当前的需要声明require_once('classes/PHPExcel.php');
该文件定义了您缺少的常量PHPEXCEL_ROOT
,然后在自动加载器文件上调用require_once()
。它还会加载整个库使用的主class PHPExcel
。
答案 2 :(得分:0)
由于PHPExcel已转移到PHPSpreadsheet,这可能有点太晚,但如果您仍在使用PHPExcel并且想要使用自动加载器,那么您需要做的就是在需要自动加载器之前定义PHPExcel根目录。
define('PHPEXCEL_ROOT', dirname(__FILE__).'/');
我在自定义mvc框架中使用它作曲家
require_once ROOT . '/vendor/autoload.php';
PHPExcel_Autoloader::Register();