php - 如何从导出的 csv 文件中删除双引号
问题描述
我正在使用 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
从 'enclosure' 中删除
"
(双引号)config/excel.php
'exports' => [ 'csv' => [ 'enclosure' => '', // was '"' // other settings ], ],
现在您的 csv 导出值不再包含"
附件。
如果您想根据导出更改此设置,您可以实现WithCustomCsvSettings
关注并将该getCsvSettings
方法添加到您的ConfirmedExport
类中:
use Maatwebsite\Excel\Concerns\WithCustomCsvSettings;
class ConfirmedExport implements WithCustomCsvSettings
{
// other code
public function getCsvSettings(): array
{
return [
'enclosure' => ''
];
}
}
推荐阅读
- python - python中多个向量的随机抽样
- python - 追加后Python中的空字符串
- html - css 属性属性不起作用,因为它应该正常工作
- iis - 如何通过错误的域访问 Web 应用程序?
- python-2.7 - Kubeflow 在容器启动时返回没有这样的文件或目录
- hybris - 用于创建 CMS 页面的 Impex 文件位置?
- javascript - 如何监控来自 express 和 socket.io 服务器的传入和传出网络字节
- bash - Linux 在设置环境变量时使用“..”向上一个目录
- python - 根据时间戳排列实时传感器输入数据
- angular - 为什么 Angular 异步管道使用 cdr.markForCheck() 而不是 cdr.detectChanges()?