如何每日将Google Sheets工作表数据追加复制到另一工作表?
实现Google Sheets每日自动追加数据到历史表格的App Script方案
步骤1:打开脚本编辑器
打开目标Google Sheets表格,点击顶部菜单栏的「扩展程序」→「Apps 脚本」,进入脚本编辑界面。
步骤2:编写核心脚本
将编辑器默认的myFunction()替换为以下代码,注意根据你的实际表名修改sourceSheet和targetSheet的名称:
function appendNewDataToTab2() { const ss = SpreadsheetApp.getActiveSpreadsheet(); const sourceSheet = ss.getSheetByName("Tab1"); // 替换为你的源表名称 const targetSheet = ss.getSheetByName("Tab2"); // 替换为你的目标表名称 // 获取源表所有数据(包含表头) const sourceData = sourceSheet.getDataRange().getValues(); // 源表无数据时直接终止执行 if (sourceData.length === 0) return; const targetLastRow = targetSheet.getLastRow(); let dataToAppend; if (targetLastRow === 0) { // 目标表为空,复制源表全部数据(含表头) dataToAppend = sourceData; } else { // 目标表已有数据,跳过源表表头,只追加数据行 dataToAppend = sourceData.slice(1); } // 将数据写入目标表 if (dataToAppend.length > 0) { targetSheet.getRange(targetLastRow + 1, 1, dataToAppend.length, dataToAppend[0].length).setValues(dataToAppend); } }
步骤3:设置定时触发器
- 在脚本编辑器左侧点击「触发器」图标(时钟样式);
- 点击「添加触发器」,按以下参数配置:
- 选择要运行的函数:
appendNewDataToTab2 - 触发器类型:「基于时间的触发器」
- 时间驱动类型:「每天」
- 时间区间:选择「凌晨5点到6点」(确保在
=importdata完成数据更新后运行) - 时区:选择你所在的时区(如「北京/中国」)
- 选择要运行的函数:
可选优化:保留数据格式
如果需要同步源表的日期、数字等格式,可以在setValues代码块后添加以下内容:
// 复制源表格式到目标表 const sourceRange = sourceSheet.getDataRange(); const targetRange = targetSheet.getRange(targetLastRow + 1, 1, dataToAppend.length, dataToAppend[0].length); sourceRange.copyTo(targetRange, SpreadsheetApp.CopyPasteType.PASTE_FORMAT, false);
测试验证
第一次配置完成后,手动点击脚本编辑器的「运行」按钮触发函数执行,按提示完成脚本授权流程,随后检查Tab2是否成功获取Tab1的数据。
内容的提问来源于stack exchange,提问作者Sami Chouchane
相关产品推荐
相关产品推荐

