2011-03-20 56 views
3

我正在使用PHPExcel从XLSX文件读取数据。一切正常Debian的& Apache的,但它的初始加载期间IIS失败:在IIS上加载PHPExcel导入失败

$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上运行& IIS。

+1

如果不知道更多关于你的配置,很难说出了什么问题。我有PHPExcel与IIS工作没有任何问题。一般来说,任何加载文件失败都会产生一些错误。你可以把所有的东西放在try/catch块中,看看是否有任何异常? – 2011-03-20 12:21:43

+0

谢谢Mark,我添加了一个try&catch。不幸的是,没有例外。我也尝试了一个错误的路径和文件名,在这种情况下引发了一个异常,因此我的代码似乎是正确的。 – MrG 2011-03-20 18:20:04

+1

这使得识别问题变得非常困难。阅读器代码中有几处回声被注释掉了,但如果这个相同的文件在Debian上的Apache下加载相同的代码,那肯定是IIS或配置问题。我首先仔细检查ZipArchive和SimpleXML是否已正确安装并启用。 – 2011-03-20 19:03:10

回答

0

您是否尝试过使用XDebug?你将需要一个像Netbeans或phpDesigner这样的IDE来支持它。

然后使用所有文件创建项目,打开该文件进行读取操作,并在运行的第一行代码中添加断点。

启动调试器并逐行浏览每一行,直到出现错误,并且您可能知道导致问题的原因。这需要很多的耐心。

祝你好运!

0

尽量确保zip扩展在php.ini文件中激活:

extension=php_zip.dll 

不过奇怪的是,没有抛出异常。

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类的替代品。调用Excel2007中作家的保存方法之前

PHPExcel_Settings::setZipClass(PHPExcel_Settings::PCLZIP); 

:这可以通过调用 启用。你可以通过调用恢复 使用ZipArchive:

PHPExcel_Settings::setZipClass(PHPExcel_Settings::ZIPARCHIVE); 

目前,这种只允许你写的Excel2007文件,而不 需要ZipArchive(不读的Excel2007或OOCal)

相关问题