You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 5.8使用Maatwebsite导出CSV时如何完全移除字段双引号

Laravel Maatwebsite导出CSV移除所有字段双引号解决方案

问题原因

你当前只声明了getCsvSettings方法,但没有实现对应的WithCustomCsvSettings接口,因此配置没有完全生效,才会出现仅部分字段双引号被移除的问题。

修复步骤

步骤1:引入并实现自定义CSV配置接口

修改你的导出类代码,完整示例如下:

namespace App\Exports;

use App\WithdrawWallet;
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\WithHeadings;
// 新增引入自定义CSV配置接口
use Maatwebsite\Excel\Concerns\WithCustomCsvSettings;

// 类实现新增WithCustomCsvSettings接口
class ConfirmedExport implements FromCollection, WithHeadings, WithCustomCsvSettings
{
    public function headings():array{
        return [
            // 你的表头配置
        ];
    }

    public function collection()
    {
        return collect(WithdrawWallet::getData());
    }
    
    public function getCsvSettings(): array
    {
        return [
            'delimiter' => ',', // 明确分隔符为逗号
            'enclosure' => '', // 包裹符设置为空,去掉双引号
            'escape' => '', // 转义符也设置为空,避免多余转义
        ];
    }
}

步骤2(可选):全局配置生效

如果你需要所有CSV导出都默认去掉双引号,可以直接修改全局配置:

  1. 先发布扩展包配置文件:
php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider"
  1. 打开生成的config/excel.php文件,找到csv配置块,修改enclosure参数:
return [
    // 其他配置省略
    'csv' => [
        'delimiter' => ',',
        'enclosure' => '', // 此处修改为空
        'escape' => '',
        // 其余csv配置保持默认即可
    ],
];

注意事项

如果你的字段内容中本身包含逗号、空格、换行符等CSV特殊字符,去掉双引号后会导致CSV解析错位,仅在确认所有导出字段无特殊字符时使用该方案。

内容的提问来源于stack exchange,提问作者Pouya Vaghefi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 10:15:05