• 解析CSV文本字符串为对象数组

    Parameters

    Returns Record<string, string>[]

    对象数组,每个对象的属性名对应列名

    // 使用第一行作为列名(默认行为)
    const csv = `name,age,city
    张三,25,北京
    李四,30,上海`;
    const result = parseCSV(csv);
    // 返回: [{ name: '张三', age: '25', city: '北京' }, { name: '李四', age: '30', city: '上海' }]
    // 使用自定义列名
    const csv = `张三,25,北京
    李四,30,上海`;
    const result = parseCSV(csv, { columnNames: ['姓名', '年龄', '城市'] });
    // 返回: [{ 姓名: '张三', 年龄: '25', 城市: '北京' }, { 姓名: '李四', 年龄: '30', 城市: '上海' }]
    // 使用序号作为列名
    const csv = `张三,25,北京
    李四,30,上海`;
    const result = parseCSV(csv, { columnNames: [] });
    // 返回: [{ column_0: '张三', column_1: '25', column_2: '北京' }, { column_0: '李四', column_1: '30', column_2: '上海' }]
    // 自定义分隔符
    const csv = `name|age|city
    张三|25|北京
    李四|30|上海`;
    const result = parseCSV(csv, { delimiter: '|' });
    // 返回: [{ name: '张三', age: '25', city: '北京' }, { name: '李四', age: '30', city: '上海' }]
    // 支持多行数据(包含换行符的字段)
    const csv = `"姓名","描述"
    "张三","这是一个
    多行描述"
    "李四","单行描述"`;
    const result = parseCSV(csv, { supportMultiline: true });
    // 返回: [{ 姓名: '张三', 描述: '这是一个\n多行描述' }, { 姓名: '李四', 描述: '单行描述' }]
    // 不支持多行数据(默认行为)
    const csv = `"姓名","描述"
    "张三","这是一个
    多行描述"
    "李四","单行描述"`;
    const result = parseCSV(csv, { supportMultiline: false });
    // 返回: [{ 姓名: '张三', 描述: '这是一个' }, { 姓名: '多行描述"', 描述: '' }, { 姓名: '李四', 描述: '单行描述' }]