我使用的是 Laravel 5.8,并且添加了 Maatwebsite 包,用于从数据库表导出 CSV 文件。
这是我导出的类:
class ConfirmedExport implements FromCollection, WithHeadings
{
public function headings():array{
return [
];
}
public function collection()
{
return collect(WithdrawWallet::getData());
}
}
结果如下所示:
"123456789","2100","Desc","lname","fname"
但是我需要从单词中删除双引号 (""
),因此预期结果如下所示:
123456789,2100,Desc,lname,fname
那么如何做到这一点呢?
更新#1:
我刚刚尝试了导出类的代码:
namespace App\Exports;
use App\WithdrawWallet;
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\WithHeadings;
class ConfirmedExport implements FromCollection, WithHeadings
{
public function headings():array{
return [
];
}
public function collection()
{
return collect(WithdrawWallet::getData());
}
public function getCsvSettings(): array
{
return [
'enclosure' => ''
];
}
}
它成功地从最后一个元素(即:123456789
)中删除了 ""
,但仍然显示了 ""
其他的!
最佳答案
@nagidi 发布配置后,您可以在设置中更改此设置。
运行以下命令:
php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider" --tag=config
从
config/excel.php
的“enclosure”中删除"
(双引号)'exports' => [ 'csv' => [ 'enclosure' => '', // was '"' // other settings ], ],
现在您的 csv 导出值不再包含 "
附件。
如果您想在每次导出时更改此设置,您可以实现 WithCustomCsvSettings
Concern 并将 getCsvSettings
方法添加到您的 ConfirmedExport
类中:
use Maatwebsite\Excel\Concerns\WithCustomCsvSettings;
class ConfirmedExport implements WithCustomCsvSettings
{
// other code
public function getCsvSettings(): array
{
return [
'enclosure' => ''
];
}
}
关于php - 如何从导出的 csv 文件中删除双引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69793856/