如何通过URL在另一Google Sheet中获取目标表格文件名?
解决Google Sheets自定义函数获取表格标题的问题
原函数无法返回目标表格标题的原因是:UrlFetchApp.fetch(url)获取的是未授权的公开页面内容,此时页面显示的是Google Sheets的通用推广标题,而非目标表格的真实名称。
以下是可行的解决方案:
正确的自定义函数实现
使用Google Drive服务根据文件ID获取表格名称,代码如下:
function googleSheetTitle(url) { // 从Google Sheets URL中提取文件ID const idMatch = url.match(/[-\w]{25,}/); if (!idMatch) { throw new Error("无效的Google Sheets URL"); } const fileId = idMatch[0]; try { // 通过文件ID获取文件对象并返回名称 const file = DriveApp.getFileById(fileId); return file.getName(); } catch (error) { throw new Error("无法访问该文件,请确认你拥有该表格的查看权限,或检查URL是否正确"); } }
使用步骤
- 在Google Sheet B中,点击顶部菜单的「扩展程序」>「Apps 脚本」打开脚本编辑器
- 删除原有代码,粘贴上述函数代码
- 点击编辑器顶部的保存按钮,为项目命名(例如"SheetTitleGetter")
- 首次运行函数时会触发权限授权,按照提示完成授权(需允许脚本访问你的Google Drive文件)
- 返回Sheet B,在A1单元格输入公式:
=googleSheetTitle("Google Sheet A的完整URL"),即可返回目标表格的名称
注意事项
- 确保当前Google账号拥有Google Sheet A的至少查看权限,否则函数会抛出权限错误
- 输入的URL需为Google Sheet A的完整共享链接或直接访问链接,格式类似
https://docs.google.com/spreadsheets/d/[文件ID]/edit
内容的提问来源于stack exchange,提问作者Ali Hasnain
相关产品推荐
相关产品推荐

