如何通过Google Sheets API获取非公式插入的单元格图片?
解决Google Sheets直接插入图片无法通过Values API获取的问题
为啥拿不到图片?
GET https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}/values/{range} 这个Values API仅返回单元格的文本、公式或数值,直接插入到单元格的图片属于工作表的可视化元素(绘图/内嵌对象),不在该接口的返回范围内,所以会显示为空值。
正确获取直接插入图片的方法
需要换用Spreadsheets.get接口,指定获取绘图或内嵌对象的相关字段:
1. 调用接口获取数据
可以用精简版请求只获取绘图内容:
GET https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}?fields=sheets(drawings)
如果需要同时获取单元格值和图片数据,用包含网格数据的请求:
GET https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}?includeGridData=true&fields=sheets(data(rowData(values)),drawings)
2. 解析返回的图片数据
返回结果里的drawings数组中,每个绘图对象包含关键信息:
position:图片所在的单元格位置(包含sheetId、rowIndex、columnIndex)contentUrl:图片的直接访问链接title:图片的标题(若有设置)
3. 匹配图片与单元格
通过position里的行号和列号,就能把图片对应到Values API返回的具体单元格,替换掉原来的空值。
额外注意事项
- 确保你的API请求权限包含
https://www.googleapis.com/auth/spreadsheets.readonly(只读)或更高权限 - 如果图片是内嵌到单元格的对象(非浮动绘图),需要在请求字段中添加
inlineObjects,解析逻辑和绘图一致
内容的提问来源于stack exchange,提问作者Sahib
相关产品推荐
相关产品推荐

