如何为Google Sheets中的绘图命名以在Google Apps Script中引用
解决方案
方法1:通过Google Apps Script直接给现有绘图设置可引用的名称
先正常通过「插入>绘图」把你需要的绘图插入到Google Sheets对应位置,无需提前做命名操作,再按以下步骤执行:
- 点击顶部菜单栏的「扩展程序>Apps Script」打开脚本编辑器
- 先运行一次以下代码,获取当前工作表中所有已插入绘图的顺序,确认你要命名的目标绘图:
function listDrawings() { const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const drawings = sheet.getImages(); drawings.forEach((drawing, index) => { console.log(`绘图${index}:当前标题为${drawing.getTitle()}`) }) }
- 运行后在执行日志里对应序号找到你的目标绘图,运行下面的代码给它设置标题为
NewGrp,注意替换代码里的目标绘图序号为你上一步查到的数字:
function nameTargetDrawing() { const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const drawings = sheet.getImages(); // 替换下面的数字为你查到的目标绘图序号 const targetDrawing = drawings[目标绘图序号]; targetDrawing.setTitle("NewGrp"); console.log("绘图命名完成,新标题为:" + targetDrawing.getTitle()) }
- 后续你要引用这个绘图的时候,直接用标题筛选即可,示例代码:
function getNewGrpDrawing() { const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const targetDrawing = sheet.getImages().find(d => d.getTitle() === "NewGrp"); // 接下来就可以对targetDrawing执行你需要的操作 }
方法2:通过ALT文本标注替代命名(不需要提前运行脚本)
如果不想先运行脚本命名,也可以直接在界面给绘图加ALT文本当标识:
- 右键点击你插入的绘图,选择「替换文本」(部分版本翻译为ALT文本)
- 在说明栏输入
NewGrp后保存 - 后续在Apps Script里通过
getDescription()方法筛选即可,示例代码:
function getDrawingByAlt() { const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const targetDrawing = sheet.getImages().find(d => d.getDescription() === "NewGrp"); }
注意:Google Sheets确实不支持直接插入Google Drive里保存的Drawings文件到表格中,你之前尝试的方案暂时无法实现,上述两种是目前官方支持的可稳定引用绘图的方案。
内容的提问来源于stack exchange,提问作者Kim Hopkins
相关产品推荐
相关产品推荐

