【发布时间】:2019-10-18 07:00:02
【问题描述】:
我正在尝试使用 Laravel Excel 读取 .csv/.xlsx 文件,其方式与使用 Python 库 pandas 的方式相同,使用函数 read_csv(),但不是将文件内容保存到 DataFrame我希望它们在一个集合中。所以几乎将第一行标识为标题并根据标题名称命名其他行键。
目前,我可以使用此导入文件将每一行保存到一个集合中并运行以下命令:
$collection = \Excel::toCollection(new TestImport, file);
<?php
namespace App\Imports;
use App\User;
use Illuminate\Support\Collection;
use Maatwebsite\Excel\Concerns\ToCollection;
class TestImport implements ToCollection
{
public function collection(Collection $row)
{
return $row;
}
}
但是这样键(标题)只是保存为集合的另一个项目(一行)。到目前为止,我已经能够提出两种不理想的可能解决方案:
1) 读取文件头只是为了获取标题,然后将它们作为参数传递给导入类的构造函数并手动定义键名。
2) 读取文件后,遍历命名所有项目键的集合。
有谁知道更好更直接的方法?
【问题讨论】:
标签: php excel laravel pandas laravel-excel