如何获取Google Drive文件旧版本链接并写入谷歌表格?
Google Drive旧版本链接提取与表格写入方案
一、日志中对应旧版本访问链接的部分
Drive API返回的revision对象里没有直接给出现成的在线访问链接,但可以通过两种方式获取:
- 构造直接访问链接:日志里的
revision.id是该版本的唯一标识,结合文件ID拼接即可生成在线查看链接:https://drive.google.com/open?id=你的文件ID&revision=版本ID - 导出格式链接(如PDF):如果是Google原生文件(文档/表格等),
revision对象的exportLinks字段会包含对应格式的导出链接(比如application/pdf对应的URL),但这是导出下载链接而非在线查看链接。
二、完善后的脚本:提取旧版本并写入谷歌表格
下面的脚本会提取文件的所有旧版本核心信息(版本ID、修改时间、修改人、可点击访问链接),并自动写入指定谷歌表格:
function exportDriveRevisionsToSheet() { // 配置参数 const fileId = "你的文件ID"; // 替换为目标Drive文件ID const sheetId = "你的表格ID"; // 替换为目标谷歌表格ID const sheetName = "版本记录"; // 表格中要写入的工作表名称 // 获取文件所有修订版本 const revisions = Drive.Revisions.list(fileId); if (!revisions.items || revisions.items.length === 0) { Logger.log("该文件无历史版本"); return; } // 初始化表格 const spreadsheet = SpreadsheetApp.openById(sheetId); const sheet = spreadsheet.getSheetByName(sheetName) || spreadsheet.insertSheet(sheetName); // 写入表头 const headers = ["版本ID", "修改时间", "修改人邮箱", "在线访问链接"]; sheet.getRange(1, 1, 1, headers.length).setValues([headers]).setFontWeight("bold"); // 处理并写入版本数据 const rows = []; revisions.items.forEach(revision => { const revisionId = revision.id; const modifiedTime = new Date(revision.modifiedDate).toLocaleString(); const lastUserEmail = revision.lastModifyingUser?.emailAddress || "未知"; // 构造在线访问链接并生成表格超链接公式 const viewLink = `https://drive.google.com/open?id=${fileId}&revision=${revisionId}`; const linkFormula = `=HYPERLINK("${viewLink}", "查看版本${revisionId}")`; rows.push([revisionId, modifiedTime, lastUserEmail, linkFormula]); }); // 批量写入数据到表格 sheet.getRange(2, 1, rows.length, rows[0].length).setValues(rows); Logger.log(`成功导出${rows.length}条版本记录到表格`); }
使用说明
- 替换脚本中的
fileId和sheetId为你的实际ID - 运行前需启用Drive API:在脚本编辑器的「扩展程序」→「Apps脚本API」中启用,或在「资源」→「高级Google服务」中开启Drive API
- 表格中的「在线访问链接」列会自动生成可点击的超链接,直接点击即可跳转查看对应旧版本
内容的提问来源于stack exchange,提问作者Oakwood Riders
相关产品推荐
相关产品推荐

