YII2 moonlandsoft \ phpexcel \ Excel :: файл импорта не существует ошибка - PullRequest
0 голосов
/ 07 декабря 2018

У меня есть требование извлекать данные из файла Excel через виджет (то есть) moonlandsoft/phpexcel/Excel в YII2.Для тестирования я пытаюсь поместить файл в соответствующую директорию вида (где у меня есть приведенная ниже кодировка в файле вида) и протестировать код.Но возникает ошибка о том, что

файл не существует enter image description here

.Это потому, что я не знаю точное местоположение, где виджет пытается получить данные.Где я должен поместить файл Excel (test.ods) для проверки?

<?php
use moonland\phpexcel\Excel;
$filename = "test.ods";
$data = Excel::import(
    $filename, [
        'setFirstRecordAsKeys' => true
    ]
);
print_r($data);
exit;

1 Ответ

0 голосов
/ 07 декабря 2018

Вам необходимо поместить файл в каталог web, а не в каталог views, так как папка web является общедоступным местом и включает в себя сценарий ввода index.php.

Поэтому поместите файл в веб-каталог, если вы используете

  • yii2-app-basic YOUR_PROJECT_ROOT/web
  • yii2-advance-app YOUR_PROJECT_ROOT/frontend/web или YOUR_PROJECT_ROOT/backend/web

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

Помимо того, что он работает,По моему мнению, вы не должны использовать это расширение, потому что

  • Он использует PHPExcel, который устарел и заменен на PHPSpreadsheet, вы можете увидеть сообщение на консоли при установке этогоРасширение в первый раз

    Пакет phpoffice/phpexcel отменен, его следует избегать.Вместо этого используйте phpoffice/phpspreadsheet.

  • PhpSpreadsheet - следующая версия PHPExcel.Это нарушает совместимость для существенного улучшения качества базы кода (пространства имен, соответствие PSR, использование новейших функций языка PHP и т. Д.).

  • Поскольку все усилия перешли на PhpSpreadsheet, PHPExcel больше не будет поддерживаться.Все вклады для PHPExcel, исправлений и новых функций должны быть нацелены на PhpSpreadsheet развивающую ветку.

  • И, прежде всего, расширение прекращено и больше не поддерживается с 2016 года, есть несколько запросов на извлечениеэто никогда не объединялось, включая обновление к PHPSpreadsheet, но ничего.

Лучшей альтернативой может быть arieslee / yii2-phpspreadsheet , которая является модифицированной версией того же расширения, которое выиспользуются и обновлены до PHPSpreadsheet, вам не нужно ничего менять в коде, то же самое расширение с теми же методами.

...