求获取指定Google Sheet工作簿最后修改时间的脚本方案
批量获取Google Sheet工作簿最后修改时间脚本
直接用Google Apps Script就能实现需求,以下是完整代码:
function getLastModifiedTimes() { // 获取目标工作表 const ss = SpreadsheetApp.getActiveSpreadsheet(); const sheet = ss.getSheetByName("Planner Directory"); // 获取E列中所有非空的工作簿ID(默认第1行是表头,从第2行开始读取) const idRange = sheet.getRange("E2:E").getValues(); const lastRow = sheet.getLastRow(); // 遍历每个ID,获取最后修改时间并写入F列 for (let i = 0; i < lastRow - 1; i++) { const fileId = idRange[i][0]; if (!fileId) continue; // 跳过空单元格 try { // 通过ID获取文件并提取最后修改时间 const file = DriveApp.getFileById(fileId); const lastModified = file.getLastUpdated(); // 写入对应行的F列 sheet.getRange(i + 2, 6).setValue(lastModified); // 每处理10个文件暂停1秒,避免触发谷歌服务配额限制 if (i % 10 === 0) SpreadsheetApp.flush(); } catch (e) { // 处理无效ID或无权限的情况,写入提示文本 sheet.getRange(i + 2, 6).setValue("无效ID/无权限"); } } }
使用步骤:
- 打开包含「Planner Directory」工作表的谷歌表格
- 点击顶部菜单栏的「工具」→「脚本编辑器」
- 删除编辑器里的默认代码,粘贴上面的脚本
- 点击编辑器顶部的运行按钮(▶️),首次运行需要授权:按提示点击「查看权限」→选择你的谷歌账号→点击「高级」→「前往XXX脚本(不安全)」→允许权限
- 运行完成后回到表格,F列就会自动填充对应工作簿的最后修改时间
注意事项:
- 确保你对E列中的所有工作簿ID拥有查看权限,否则会返回「无效ID/无权限」
- 如果E列数据量超过100条,脚本可能需要分批次运行,或者调整暂停时间避免配额限制
- 若你的数据起始行不是第2行,修改代码中的
E2:E和i + 2对应数值即可
内容的提问来源于stack exchange,提问作者Rob Chetty
相关产品推荐
相关产品推荐

