如何在Google Sheets引用表中显示前端表列级修改时间戳(前端不显示)
在Google Sheets引用表中添加前端表列修改时间戳(前端表不显示)
实现思路
Google Sheets内置函数无法直接获取外部工作表列的修改时间,因此我们借助Google Apps Script,在引用表(RE)中自动抓取并写入前端表(attendance)每一列的最后修改时间戳,确保前端表无额外显示内容。
步骤1:编写Apps Script代码
打开引用表RE,点击「扩展程序」→「Apps Script」,将以下代码粘贴到脚本编辑器中:
function updateColumnModifiedTimestamps() { // 前端表(attendance)的ID const sourceSheetId = "1KVpXNYYbe6BdRqqT0XnuJbtWEu0hj5olRvaHL714wNM"; const sourceSpreadsheet = SpreadsheetApp.openById(sourceSheetId); const sourceSheet = sourceSpreadsheet.getSheetByName("attendance"); if (!sourceSheet) { throw new Error("未找到名为'attendance'的前端工作表"); } // 获取引用表(RE) const targetSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("RE"); if (!targetSheet) { throw new Error("未找到名为'RE'的引用工作表"); } // 获取前端表的有效列数 const totalColumns = sourceSheet.getLastColumn(); // 获取引用表中IMPORTRANGE数据的最后一列,时间戳将写在数据列右侧 const dataLastCol = targetSheet.getLastColumn(); // 遍历每一列,获取并写入最后修改时间 for (let col = 1; col <= totalColumns; col++) { const columnRange = sourceSheet.getRange(1, col, sourceSheet.getLastRow(), 1); const lastModifiedTime = columnRange.getLastUpdated(); // 将时间戳写入引用表对应列的右侧(例:前端A列 → 引用表数据列右侧第一列) targetSheet.getRange(1, dataLastCol + col).setValue(lastModifiedTime); // 若需将时间戳写在对应数据列的表头下方,替换为: // targetSheet.getRange(2, col).setValue(lastModifiedTime); } SpreadsheetApp.getActiveSpreadsheet().toast("列修改时间戳已更新", "操作完成", 5); }
步骤2:配置自动触发规则
为实现时间戳自动更新,需添加触发器:
- 在脚本编辑器中,点击「编辑」→「当前项目的触发器」
- 点击右下角「添加触发器」,配置参数:
- 选择函数:
updateColumnModifiedTimestamps - 事件源:时间驱动(按需选择更新频率,如每1小时/每6小时)
- 时间类型:小时计时器或分钟计时器,设置具体间隔
- 选择函数:
- 保存触发器,首次运行需完成权限授权,按提示操作即可。
注意事项
- 确保代码中的工作表名称(
attendance、RE)与实际表名完全一致 - 若需实时更新,可将事件源改为「从电子表格」→「onChange」,但需注意平台触发频率限制
- 时间戳格式可通过Google Sheets单元格格式功能调整(右键单元格→设置单元格格式→日期时间)
内容的提问来源于stack exchange,提问作者Ramya Raj
相关产品推荐
相关产品推荐

