CSV转Google Sheet时单元格内多行数据被拆分的问题求助
解决CSV导入Google Sheets时单元格多行数据被拆分的问题
问题出在原脚本的CSV解析逻辑——它大概率是用简单的换行、逗号分割来处理内容,没考虑到标准CSV中被双引号包裹的单元格内允许存在换行符,导致把单元格内的换行误判成了新行,拆分了原本属于同一单元格的内容。
直接用Google Apps Script内置的Utilities.parseCsv()方法就能解决,这个方法会严格按照CSV标准解析内容,自动识别带引号的多行单元格。
修改后的核心代码示例
把原脚本里手动拆分行和列的部分替换成以下逻辑:
// 保留原脚本的文件读取逻辑,获取到CSV文本内容 var csvText = "你的CSV内容或从文件读取的文本"; // 用内置方法解析CSV,自动处理多行单元格 var parsedData = Utilities.parseCsv(csvText); // 获取目标工作表 var targetSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("目标表名"); // 清空原有内容(可选操作) targetSheet.clearContents(); // 写入解析后的数据 if (parsedData.length > 0) { targetSheet.getRange(1, 1, parsedData.length, parsedData[0].length).setValues(parsedData); }
注意事项
- 如果你的CSV里包含多行的单元格没有用双引号包裹,先调整CSV格式:把包含换行的单元格内容用双引号括起来(比如
"第一行\n第二行"),否则任何工具都无法区分单元格内换行和行分隔符。 - 原脚本中文件读取、权限相关的代码可以保留,只替换解析和写入数据的部分即可。
内容的提问来源于stack exchange,提问作者Alexasks
相关产品推荐
相关产品推荐

