能否通过公式使用Google Drive文件路径向Google Sheets插入图片
解决方案
Google Sheets原生不支持直接通过Drive文件路径调用图片,且默认IMAGE函数确实屏蔽了drive.google.com域名下的资源,可通过「自定义Apps Script函数+路径映射」的方式实现你要的效果,具体操作如下:
- 第一步:获取根文件夹ID
打开你作为根目录的Drive文件夹(比如你示例中的Drive/Test对应的文件夹),地址栏中https://drive.google.com/drive/folders/后的字符串就是该文件夹的ID,复制留存。 - 第二步:添加自定义函数
打开你需要插入图片的Google Sheets,点击顶部菜单「扩展程序」-「Apps Script」,删除编辑器中默认的代码,粘贴以下代码:
function GET_DRIVE_IMG(relativePath) { // 请将双引号内的内容替换为你第一步复制的根文件夹ID const ROOT_FOLDER_ID = "替换为你的根文件夹ID"; const rootFolder = DriveApp.getFolderById(ROOT_FOLDER_ID); const pathSegments = relativePath.split("/"); let currentFolder = rootFolder; const fileName = pathSegments.pop(); // 按路径层级匹配子文件夹 for (let segment of pathSegments) { if (segment.trim() === "") continue; const matchedFolders = currentFolder.getFoldersByName(segment); if (matchedFolders.hasNext()) { currentFolder = matchedFolders.next(); } else { return ""; } } // 匹配目标文件 const matchedFiles = currentFolder.getFilesByName(fileName); if (matchedFiles.hasNext()) { const targetFile = matchedFiles.next(); // 生成IMAGE函数支持的直链,末尾w1000为图片最大宽度,可自行调整 return `https://lh3.googleusercontent.com/d/${targetFile.getId()}=w1000`; } return ""; }
点击顶部「保存项目」按钮,给项目命名后按照提示授权脚本访问你的Google Drive权限即可。
- 第三步:表格内调用公式
回到Google Sheets界面,在需要插入图片的单元格输入公式即可,比如你要插入Drive/Test/img.png,对应公式为:=IMAGE(GET_DRIVE_IMG("img.png"))
如果根目录下还有子文件夹,比如要插入Drive/Test/2024/banner.gif,对应公式为:=IMAGE(GET_DRIVE_IMG("2024/banner.gif"))
注意事项
- 所有需要调用的图片必须提前设置共享权限为「知道链接的任何人都可以查看」,否则图片无法正常加载
- Drive文件和文件夹名称区分大小写,路径输入时请和实际名称完全匹配
- 可调整返回直链末尾的参数修改图片尺寸,比如将
=w1000改为=w800-h600就是限制最大宽度800像素、最大高度600像素
内容的提问来源于stack exchange,提问作者Falcon4ch
相关产品推荐
相关产品推荐

