3

我正在使用 PHPExcel 从 XLSX 文件中读取数据。在 Debian 和 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 和 IIS 上运行。

4

3 回答 3

0

您是否尝试过使用 XDebug?您将需要一个支持它的 IDE,例如 Netbeans 或 phpDesigner。

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

启动调试器并单步执行每一行,直到出现错误,您可能对导致问题的原因有所了解。这需要很大的耐心。

祝你好运!

于 2012-05-10T02:30:41.067 回答
0

尝试确保在 php.ini 中启用了 zip 扩展:

extension=php_zip.dll

仍然很奇怪,没有抛出异常。

于 2012-05-10T04:17:19.387 回答
0

我遇到了同样的问题并通过添加以下行来解决它:

PHPExcel_Settings::setZipClass(PHPExcel_Settings::PCLZIP);

以下是 PHPExcel 文档的解释:https ://phpexcel.codeplex.com/wikipage?title=FAQ&referringTitle=Home

PHP 抱怨找不到 ZipArchive

确保满足所有要求,尤其是应启用 php_zip 扩展。只有在读取或写入使用 Zip 压缩的格式(Excel2007 和 OOCalc)时才需要 ZipArchive 类。从 1.7.6 版开始,PCLZip 库与 PHPExcel 捆绑在一起,作为 ZipArchive 类的替代品。这可以通过调用来启用:

PHPExcel_Settings::setZipClass(PHPExcel_Settings::PCLZIP);

在调用 Excel2007 Writer 的 save 方法之前。您可以通过调用以下命令恢复使用 ZipArchive:

PHPExcel_Settings::setZipClass(PHPExcel_Settings::ZIPARCHIVE);

目前,这只允许您编写 Excel2007 文件而不需要 ZipArchive(不能读取 Excel2007 或 OOCal)

于 2016-02-02T21:58:40.030 回答