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

React JS导出CSV时单行数据拆分多行问题求助

解决CSV行内容被拆分的问题

问题出在你的乌尔都语文本中可能包含隐藏的换行符(\n或\r),这些字符会让CSV阅读器将同一单元格的内容拆分成多行。只需在处理字符串值时,把这些换行符替换掉即可。

修改后的convertToCsv函数:

const convertToCsv = (data) => {
    const rows = [];

    // 提取所有表头
    const headers = Array.from(
      new Set(data.flatMap((item) => Object.keys(item)))
    );

    // 添加表头行
    rows.push(headers.join(","));

    // 转换数据为CSV行
    data.forEach((item) => {
      const row = headers.map((header) => {
        const value = item[header];
        if (typeof value === "string") {
          // 替换字符串中的换行符,同时处理引号转义
          const cleanedValue = value.replace(/(\r\n|\n|\r)/g, " ").replace(/"/g, '""');
          return `"${cleanedValue}"`;
        }
        return value;
      });
      rows.push(row.join(","));
    });

    // 拼接CSV内容,保留BOM确保乌尔都语显示正常
    const csv = "\uFEFF" + rows.join("\r\n");

    return csv;
};

关键修改点:

  • 处理字符串值时,新增replace(/(\r\n|\n|\r)/g, " "),将所有类型的换行符替换为空格(可根据需求换成空字符串)
  • 保留原有引号转义逻辑,保证CSV格式的合法性

这样处理后,单元格里的内容就不会因为隐藏换行符被拆分,所有值都会显示在同一行里,同时乌尔都语字符的显示也不受影响。

内容的提问来源于stack exchange,提问作者Mehboob Ali

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 09:32:50