如何从导出的 csv 文件中删除双引号

How to remove double quotations from exported csv file

我正在使用 Laravel 5.8 并且我添加了 Maatwebsite 包用于从数据库导出 CSV 文件 table。

这是我导出的 class:

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:

我刚刚尝试了导出代码 Class:

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 发布配置后,您可以在设置中更改它。

  1. 运行 以下命令:

    php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider" --tag=config
    
  2. config/excel.php

    中的 'enclosure' 中删除 "(双引号)
     'exports' => [
         'csv' => [
             'enclosure' => '', // was '"'
             // other settings
         ],
     ],
    

现在您的 csv 导出值不再包含 " 附件。

如果您想在每次导出时更改此设置,您可以实施 WithCustomCsvSettings 关注并将 getCsvSettings 方法添加到您的 ConfirmedExport class:

use Maatwebsite\Excel\Concerns\WithCustomCsvSettings;

class ConfirmedExport implements WithCustomCsvSettings
{
    // other code

    public function getCsvSettings(): array
    {
        return [
            'enclosure' => ''
        ];
    }
}