我需要通过moonlandsoft/phpexcel/Excel
中的小部件(即YII2
)从excel文件中获取数据。为了进行测试,我试图将文件放置在适当的视图目录中(在视图文件中有以下代码),然后测试代码。但是错误提示
正在发生。这是因为我不知道小部件尝试获取数据的确切位置。我应该在哪里放置excel文件(test.ods
)进行测试?
<?php
use moonland\phpexcel\Excel;
$filename = "test.ods";
$data = Excel::import(
$filename, [
'setFirstRecordAsKeys' => true
]
);
print_r($data);
exit;
答案 0 :(得分:1)
您需要将文件放置在web
目录中而不是views
目录中,因为web
文件夹是可公开访问的位置,并且包含输入脚本{{1} }。
因此,如果您使用的是
,请将文件放在网络目录中index.php
YOUR_PROJECT_ROOT/web
或YOUR_PROJECT_ROOT/frontend/web
您的脚本将开始工作,您可以看到已打印的数组。
除了可以正常使用之外,我认为您不应该使用此扩展程序,因为
它使用的YOUR_PROJECT_ROOT/backend/web
已被弃用并由PHPExcel
取代,当您首次安装此扩展程序时,可以在控制台上看到消息
包裹
PHPSpreadsheet
被放弃了,您应该避免使用它。 请改用phpoffice/phpexcel
。
phpoffice/phpspreadsheet
是PhpSpreadsheet
的下一版本。它破坏了兼容性,从而极大地提高了代码库的质量(名称空间,PSR遵从性,使用最新的PHP语言功能等)。
由于所有工作已转移到PHPExcel
,因此PhpSpreadsheet
将不再保留。对PHPExcel
,补丁和新功能的所有贡献应以PHPExcel
开发分支为目标。
最重要的是,自2016年以来,该扩展一直被放弃,不再进行维护,有几个请求请求从未合并,包括对PHPSpreadsheet的更新,但什么也没有。
更好的替代方法可能是arieslee/yii2-phpspreadsheet,它是您正在使用的同一扩展名的修改版本,并已升级为PhpSpreadsheet
,因此您无需更改具有相同扩展名的代码中的任何内容相同的方法。