Не удается импортировать PHPExcel во время загрузки на IIS - PullRequest
3 голосов
/ 20 марта 2011

Я использую 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.

Ответы [ 3 ]

0 голосов
/ 10 мая 2012

Попробуйте убедиться, что расширение zip включено в php.ini:

extension=php_zip.dll

Все еще странно, что не выдается исключение.

0 голосов
/ 03 февраля 2016

У меня была та же проблема, и я решил ее, добавив следующую строку:

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.Вы можете вернуться к использованию ZipArchive, позвонив по номеру:

PHPExcel_Settings::setZipClass(PHPExcel_Settings::ZIPARCHIVE);

В настоящее время это позволяет записывать только файлы Excel2007 без необходимости в ZipArchive (не читать Excel2007 или OOCal)

0 голосов
/ 10 мая 2012

Вы пробовали использовать XDebug?Вам понадобится IDE, например Netbeans или phpDesigner, который его поддерживает.

Затем создайте проект со всеми вашими файлами, откройте тот файл, который выполняет чтение, и добавьте точку останова в первой строке кода, который выполняется.

Запустите отладчик и перебирайте каждую строку до тех пор, пока не возникнет ошибка, и вы не сможете понять, что вызывает вашу проблему.Это потребует большого терпения.

Удачи!

...