如何用Apps Script将含多行值的单元格拆分为独立行?
用Google Apps Script拆分含换行符的单元格为独立行
以下是可以直接使用的脚本,能将指定列中用\n分隔的内容拆分为独立行,同时保留其他列的对应数据:
function splitCellsByNewline() { // 替换为你的目标工作表名称 const targetSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1"); // 获取工作表所有数据 const sourceData = targetSheet.getDataRange().getValues(); const processedData = []; // 遍历每一行数据 sourceData.forEach(row => { // 假设要拆分的是第2列(索引从0开始,对应表格B列),根据实际情况修改索引 const splitContent = row[1].toString().split('\n').filter(item => item.trim() !== ''); // 如果拆分出多个内容,生成对应新行 if (splitContent.length > 1) { splitContent.forEach(item => { const newRow = [...row]; newRow[1] = item.trim(); processedData.push(newRow); }); } else { // 没有换行的行直接保留 processedData.push(row); } }); // 可选:将结果写入新工作表,避免覆盖原数据 const resultSheet = SpreadsheetApp.getActiveSpreadsheet().insertSheet("拆分结果"); resultSheet.getRange(1, 1, processedData.length, processedData[0].length).setValues(processedData); // 如果要直接覆盖原表内容,注释上面两行,启用下面两行 // targetSheet.clearContents(); // targetSheet.getRange(1, 1, processedData.length, processedData[0].length).setValues(processedData); }
使用说明
- 打开你的Google表格,点击「扩展程序」→「Apps Script」进入脚本编辑器
- 清空默认代码,粘贴上面的脚本
- 修改两处关键配置:
- 将
"Sheet1"替换为你要处理的工作表名称 - 将
row[1]替换为需要拆分的列的索引(比如表格A列对应索引0,C列对应索引2)
- 将
- 点击运行按钮,授权脚本权限后即可执行
注意事项
- 脚本默认将拆分结果写入新工作表,避免误删原数据;如果需要直接覆盖原表,注释掉写入新表的代码,启用覆盖原表的代码
- 拆分时会自动过滤掉空的拆分项(比如单元格末尾的换行)
内容的提问来源于stack exchange,提问作者Rafa
相关产品推荐
相关产品推荐

