如何通过Google Script将源表指定列(A、C、H)的多行数据追加到目标表
Google Script实现指定列数据追加到目标工作表
下面是直接可用的脚本,能把源工作表的A、C、H列数据批量追加到目标工作表:
function appendSpecifiedColumns() { // 替换成你的源工作表和目标工作表名称 const sourceSheetName = "源工作表"; const targetSheetName = "目标工作表"; const ss = SpreadsheetApp.getActiveSpreadsheet(); const sourceSheet = ss.getSheetByName(sourceSheetName); const targetSheet = ss.getSheetByName(targetSheetName); if (!sourceSheet || !targetSheet) { SpreadsheetApp.getUi().alert("找不到指定的工作表,请检查名称是否正确"); return; } // 获取源表所有数据(包含表头) const sourceData = sourceSheet.getDataRange().getValues(); // 如果源表没有数据,直接退出 if (sourceData.length === 0) return; // 筛选A、C、H列(对应数组索引0、2、7,数组从0开始计数) // 若不需要表头,把sourceData改成sourceData.slice(1) const filteredData = sourceData.map(row => [row[0], row[2], row[7]]); // 追加到目标表的最后一行之后 targetSheet.getRange( targetSheet.getLastRow() + 1, 1, filteredData.length, filteredData[0].length ).setValues(filteredData); }
关键说明:
- 工作表名称替换:把
sourceSheetName和targetSheetName的值改成你实际的工作表名称 - 表头处理:如果源表第一行是表头且不需要追加到目标表,将
sourceData替换为sourceData.slice(1),即可从第二行开始提取数据 - 空行过滤:如果需要跳过源表中完全为空的行,可在
map前添加过滤逻辑:const filteredData = sourceData .filter(row => row.some(cell => cell !== "")) // 过滤完全为空的行 .map(row => [row[0], row[2], row[7]]); - 权限授权:第一次运行脚本时,需按照提示完成Google Script的表格访问授权
内容的提问来源于stack exchange,提问作者rncb
相关产品推荐
相关产品推荐

