如何实现Google Sheets每日定时同步数据到另一表格并配置触发器
错误原因
报错Cannot convert '' to int是因为原代码逻辑需要你提前在Dashboard工作表的A1单元格填写下一次写入的行号,当前A1为空,读取到的空字符串无法转换为行号所需的整数类型,因此触发报错。
修复后的优化代码
优化后不再依赖手动维护行号,同时自动写入记录日期,更适合后续可视化使用:
function scorekeeper() { // 获取对应工作表 const portfolioSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Portfolio"); const dashboardSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Dashboard"); // 读取Portfolio表L11的总投资价值 const totalInvestValue = portfolioSheet.getRange("L11").getValue(); // 生成当前记录日期 const recordDate = new Date(); // 自动计算Dashboard表的下一个空行 const nextEmptyRow = dashboardSheet.getLastRow() + 1; // 写入数据:A列存日期,B列存投资价值 dashboardSheet.getRange(nextEmptyRow, 1).setValue(recordDate); dashboardSheet.getRange(nextEmptyRow, 2).setValue(totalInvestValue); }
首次使用前置操作
在Dashboard工作表第一行添加表头:
- A1单元格填「记录日期」
- B1单元格填「总投资价值」
后续写入的数据会从第二行开始自动追加,不会覆盖表头。
配置每日定时触发器步骤
- 打开你的Google表格,点击顶部菜单栏「扩展程序」->「Apps脚本」进入脚本编辑器
- 把上述修复后的代码粘贴替换原有代码,点击顶部保存按钮,自定义项目名称后确认
- 点击左侧菜单栏的「触发器」(闹钟形状图标)
- 点击右下角「添加触发器」按钮,按如下参数配置:
- 选择要运行的函数:
scorekeeper - 选择要运行的部署:默认Head即可
- 选择事件源:
时间驱动 - 选择时间驱动类型:
日计时器 - 选择时间范围:
下午4点到5点
- 选择要运行的函数:
- 点击保存后按照系统提示完成脚本访问表格的权限授权即可。
可视化操作说明
触发器每日自动记录数据后,选中Dashboard工作表的A、B两列所有数据,点击顶部菜单栏「插入」->「图表」,即可选择折线图、面积图等类型生成投资价值变化趋势图。
内容的提问来源于stack exchange,提问作者poiuytrewq
相关产品推荐
相关产品推荐

