问题描述
我正在尝试使用 Laravel-excel composer 包导入 csv 文件,但该 csv 文件与通常的 csv 文件不同, 然后我发现通过更改默认 Laravel-excel 包的配置可以使其导入。但我无法确定此 csv 文件的配置是什么。
这里是 csv 数据示例
id created_time ad_id ad_name adset_id adset_name campaign_id campaign_name
l:132562915446228 2021-03-03T13:45:28+05:30 ag:23847391487180225 "Campaign 2021 feb" as:23847391487170225
l:3689145127872575 2021-03-03T07:20:04+05:30 ag:23847391487180225 "Campaign 2021 feb" as:23847391487170225
l:2374231269367799 2021-03-03T00:54:03+05:30 ag:23847391487180225 "Campaign 2021 feb" as:23847391487170225
l:425446045204770 2021-03-02T18:44:41+05:30 ag:23847391487180225 "Campaign 2021 feb" as:23847391487170225
l:184810853442455 2021-03-02T18:42:23+05:30 ag:23847391487180225 "Campaign 2021 feb" as:23847391487170225
l:256522452772718 2021-03-02T17:11:56+05:30 ag:23847391487180225 "Campaign 2021 feb" as:23847391487170225
l:1142930659490759 2021-03-02T12:13:24+05:30 ag:23847391487180225 "Campaign 2021 feb" as:23847391487170225
当前的 csv 导入配置:
'csv' => [
'delimiter' => ',','enclosure' => '"','escape_character' => '\\','contiguous' => false,'input_encoding' => 'UTF-8',],
我只需要有效的配置来导入这个 csv
解决方法
我通过向我的导入类添加 use WithCustomCsvSettings
关注并从类内部添加配置来解决此问题。在这里
<?php
use Maatwebsite\Excel\Concerns\WithCustomCsvSettings;
class Import implements WithCustomCsvSettings
{
//set csv configs
public function getCsvSettings(): array
{
return [
'delimiter' => "\t",'enclosure' => '','escape_character' => '\\','contiguous' => false,'input_encoding' => 'UTF-8',// if this not worked use `UCS-2`
];
}
}