如何通过Google Apps Script实现点击提交时复制源表行到目标表空行
实现Google Sheets数据复制的Apps Script代码
以下是满足需求的代码,点击提交按钮即可将Source Sheet的所有数据行(跳过表头)复制到Destination Sheet的最后一行空行:
function copySourceToDestination() { // 获取当前Spreadsheet实例 const ss = SpreadsheetApp.getActiveSpreadsheet(); // 获取源表和目标表 const sourceSheet = ss.getSheetByName('Source Sheet'); const destSheet = ss.getSheetByName('Destination Sheet'); // 获取源表中所有数据行(从第2行开始,跳过表头) const sourceData = sourceSheet.getDataRange().offset(1, 0).getValues(); // 过滤掉源表中的空行(避免复制空数据) const filteredData = sourceData.filter(row => row.some(cell => cell !== '')); if (filteredData.length === 0) return; // 没有数据就终止执行 // 获取目标表的最后一行空行位置 const destLastRow = destSheet.getLastRow() + 1; // 将数据写入目标表 destSheet.getRange(destLastRow, 1, filteredData.length, filteredData[0].length).setValues(filteredData); }
代码说明
getSheetByName('Source Sheet')和getSheetByName('Destination Sheet'):如果你的表名不同,直接替换成实际表名即可offset(1, 0):跳过源表的第一行表头,仅复制数据行filter(row => row.some(cell => cell !== '')):过滤源表中的空行,避免无效数据写入目标表getLastRow() + 1:精准定位目标表的最后一行空行,确保新数据追加在现有数据之后
添加提交按钮步骤
- 打开Google Sheet,点击顶部菜单栏 插入 → 绘图
- 绘制一个带“提交”文字的按钮样式图形,保存后关闭绘图窗口
- 右键点击工作表中的绘图按钮,选择 分配脚本
- 输入脚本名
copySourceToDestination,点击确定即可
现在点击这个按钮就能执行数据复制操作了。
内容的提问来源于stack exchange,提问作者SK360 Kiry
相关产品推荐
相关产品推荐

