如何从Google Sheet批量上传PDF并在对应行插入Google Drive查看链接
解决方案:Google Sheet批量插入对应Google Drive PDF仅查看链接
方案1:使用原生Google Apps Script实现(无需第三方工具,10分钟配置完成)
前置准备
- 确保所有PDF统一存储在同一个Google Drive文件夹中,且PDF命名与Sheet中某一列的唯一标识(如订单号、用户ID)对应(例如Sheet A列值为1001,对应PDF命名为1001.pdf)
- 打开目标Drive文件夹,从地址栏提取文件夹ID:即地址
https://drive.google.com/drive/folders/后的字符串 - 打开需要插入链接的Google Sheet,点击顶部菜单栏「扩展程序」-「Apps 脚本」进入编辑器
配置脚本
删除编辑器默认的代码,粘贴以下代码,按注释修改对应参数:
function 批量插入PDF链接() { // --------------- 修改以下参数即可 --------------- const 文件夹ID = "替换为你刚才提取的Drive文件夹ID"; const 匹配标识所在列 = 1; // 对应你Sheet里存唯一标识的列,A列是1,B列是2,以此类推 const 链接插入目标列 = 5; // 你要把PDF链接插在哪一列,比如E列是5 const 起始行 = 2; // 跳过表头的话就设为2,从第一行数据开始 // --------------- 参数修改结束 --------------- const 表格 = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const 总行数 = 表格.getLastRow(); const 标识数据 = 表格.getRange(起始行, 匹配标识所在列, 总行数 - 起始行 + 1).getValues(); const 文件夹 = DriveApp.getFolderById(文件夹ID); const PDF文件列表 = 文件夹.getFilesByType(MimeType.PDF); // 先建立文件名-链接映射表 const 文件映射 = new Map(); while (PDF文件列表.hasNext()) { const 文件 = PDF文件列表.next(); // 统一设置仅查看权限 文件.setSharing(DriveApp.Access.ANYONE_WITH_LINK, DriveApp.Permission.VIEW); 文件映射.set(文件.getName().replace(".pdf", ""), 文件.getUrl()); } // 批量写入链接 const 链接结果 = []; 标识数据.forEach(行 => { const 标识 = 行[0].toString().trim(); 链接结果.push([文件映射.get(标识) || "未匹配到对应PDF"]); }) 表格.getRange(起始行, 链接插入目标列, 链接结果.length, 1).setValues(链接结果); }
执行操作
点击编辑器顶部的「运行」按钮,首次执行时按提示完成账号授权,允许脚本访问你的Drive和Sheet数据。运行完成后返回Google Sheet,即可看到对应位置已经批量插入了匹配的PDF仅查看链接。
方案2:无代码轻量方案(适合数据量小于1000条的场景)
- 第一步:批量设置PDF权限:打开Drive存储PDF的文件夹,全选所有PDF文件,右键点击「共享」,将权限设置为「知道链接的任何人都可以查看」,点击保存完成批量权限配置
- 第二步:批量导出文件信息:在Google Sheet中使用Drive Explorer免费插件(可直接在Google Workspace市场搜索)批量导出该文件夹下所有PDF的文件名、查看链接到新的Sheet页
- 第三步:匹配链接:回到原数据Sheet,使用
VLOOKUP函数,以唯一标识为匹配键,批量将导出的链接匹配到对应行即可。
效果参考:
内容的提问来源于stack exchange,提问作者Vitaliy Ignatov
相关产品推荐
相关产品推荐

