我正在使用PHPExcel从XLSX文件中读取数据。一切都在Debian& amp; Apache,但在初始加载期间它在IIS上失败:
$input = "C:/Inetpub/wwwroot/import/data/test.xlsx";
$objReader = new PHPExcel_Reader_Excel2007();
$objReader->setReadDataOnly(true);
print "Starting...";
try {
$objPHPExcel = $objReader->load($input);
print("Done!");
} catch (Exception $e) {
print "Caught exception: " . $e->getMessage();
}
不幸的是,在“正在启动...”之后没有进一步的输出,尽管在IIS日志中没有显示或跟踪错误。文件路径是正确的(尝试/和/)并具有适当的权限。也没有提出异常(tkx @ Mark)。
请告知:
1)有没有办法启用某种调试来查看PHPExcel的确切位置以及(可能)为什么?
2)我需要更改哪些代码才能在Windows和Windows上运行IIS。
答案 0 :(得分:0)
您是否尝试过使用XDebug?您将需要一个支持Netbeans或phpDesigner的IDE。
然后使用所有文件创建项目,打开执行读取的文件,并在运行的第一行代码中添加断点。
启动调试器并逐步执行每一行,直到发生错误,您可能知道导致问题的原因。这需要很多耐心。
祝你好运!答案 1 :(得分:0)
尝试确保在php.ini中启用了zip扩展名:
extension=php_zip.dll
仍然很奇怪,没有例外。
答案 2 :(得分:0)
我遇到了同样的问题并通过添加以下行解决了这个问题:
PHPExcel_Settings::setZipClass(PHPExcel_Settings::PCLZIP);
以下是PHPExcel文档中的说明:https://phpexcel.codeplex.com/wikipage?title=FAQ&referringTitle=Home
PHP抱怨没有找到ZipArchive
确保您符合所有要求,尤其是php_zip扩展名 应该启用。只有在阅读时才需要ZipArchive类 或编写使用Zip压缩的格式(Excel2007和OOCalc)。 从版本1.7.6开始,PCLZip库已与PHPExcel捆绑在一起 作为ZipArchive类的替代品。这可以通过以下方式启用 主叫:
PHPExcel_Settings::setZipClass(PHPExcel_Settings::PCLZIP);
在调用Excel2007 Writer的save方法之前。你可以还原 通过调用:
来使用ZipArchivePHPExcel_Settings::setZipClass(PHPExcel_Settings::ZIPARCHIVE);
目前,这只允许你在没有的情况下编写Excel2007文件 需要ZipArchive(不读取Excel2007或OOCal)