CSV导入Google Sheets时单元格内换行符被误解析为新行,需预处理替换换行符、脚本导出前清洗、导入时选LF换行符并公式清理,或用gspread库绕过前端解析。
如果您在将数据从CSV文件导入Google Sheets时遇到单元格内

在导入前,需确保CSV中所有单元格内部的换行符被替换为空格或删除,避免被误识别为记录分隔符。Google Sheets原生CSV解析器不支持嵌入式换行,除非该字段被双引号包裹且换行符位于引号内——但多数脚本导出未严格遵循RFC 4180规范。
1、使用文本编辑器(如VS Code、Notepad++)打开CSV文件。
2、启用正则表达式搜索,查找模式:(? 或 (?。
3、将其全部替换为空格或单个空格加竖线“ | ”以保留语义分隔。
4、保存文件后重新导入Google Sheets。
若CSV由Google Apps Script生成(例如通过exportSheetToCSV),应在写入值前统一过滤单元格内容中的不可见换行字符,防止原始数据污染CSV结构。
1、在convertToCSV函数中定位var value = data[row][col];语句下方。
2、插入清洗逻辑:value = value.toString().replace(/[\r\n]+/g, ' ');
3、继续执行原有引号包裹与逗号拼接逻辑。
4、部署并运行脚本,验证导出的CSV在文本编辑器中每行仅含一个逻辑记录。
Google Sheets导入界面支持对换行行为的有限干预。当CSV已含引号包裹字段但解析仍错位时,可借助导入选项强制按物理行边界解析,再由公式后处理。
1、在Google Sheets中点击“文件 → 导入 → 上传”。
2、选择CSV文件后,在导入设置弹窗中勾选“自动检测分隔符”。
3、在“换行符”下拉菜单中选择“LF (\n)”(而非默认CRLF)。
4、点击“导入”,导入后使用=SUBSTITUTE(A1,CHAR(10)," ")批量清理单元格内残留换行。
若导入流程由外部系统驱动,gspread可绕过Google Sheets前端解析缺陷,直接将清洗后的字符串注入单元格,完全规避换行符歧义。
1、安装gspread并完成OAuth认证:pip install gspread。
2、读取CSV时用Python标准csv模块解析,启用quoting=csv.QUOTE_MINIMAL和lineterminator='\n'。
3、对每一单元格值调用.replace('\n', ' ').replace('\r', ' ')。
4、使用worksheet.update('A1', parsed_data)写入二维列表,跳过前端CSV解析层。