YII2 moonlandsoft \ phpexcel \ Excel :: import文件不存在错误

时间:2018-12-07 14:52:36

标签: php excel import yii2 widget

我需要通过moonlandsoft/phpexcel/Excel中的小部件(即YII2)从excel文件中获取数据。为了进行测试,我试图将文件放置在适当的视图目录中(在视图文件中有以下代码),然后测试代码。但是错误提示

  

文件不存在   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 :(得分:1)

您需要将文件放置在web目录中而不是views目录中,因为web文件夹是可公开访问的位置,并且包含输入脚本{{1} }。

因此,如果您使用的是

,请将文件放在网络目录中
  • yii2-app-basic index.php
  • yii2-advance-app YOUR_PROJECT_ROOT/webYOUR_PROJECT_ROOT/frontend/web

您的脚本将开始工作,您可以看到已打印的数组。

除了可以正常使用之外,我认为您不应该使用此扩展程序,因为

  • 它使用的YOUR_PROJECT_ROOT/backend/web已被弃用并由PHPExcel取代,当您首次安装此扩展程序时,可以在控制台上看到消息

      

    包裹PHPSpreadsheet被放弃了,您应该避免使用它。   请改用phpoffice/phpexcel

  • phpoffice/phpspreadsheetPhpSpreadsheet的下一版本。它破坏了兼容性,从而极大地提高了代码库的质量(名称空间,PSR遵从性,使用最新的PHP语言功能等)。

  • 由于所有工作已转移到PHPExcel,因此PhpSpreadsheet将不再保留。对PHPExcel,补丁和新功能的所有贡献应以PHPExcel开发分支为目标。

  • 最重要的是,自2016年以来,该扩展一直被放弃,不再进行维护,有几个请求请求从未合并,包括对PHPSpreadsheet的更新,但什么也没有。

更好的替代方法可能是arieslee/yii2-phpspreadsheet,它是您正在使用的同一扩展名的修改版本,并已升级为PhpSpreadsheet,因此您无需更改具有相同扩展名的代码中的任何内容相同的方法。