如何通过Google Sheets API编写含#gid的HYPERLINK公式
问题根因
- 第一次请求报错本质是JSON语法转义错误,和
#号没有任何关系:JSON规范要求,双引号包裹的字符串内部如果出现双引号,必须加反斜杠\转义,直接嵌套未转义的双引号会导致JSON结构提前截断,API解析请求体时直接抛出格式错误。 - 第二次替换单引号后公式不生效,是因为Google Sheets的公式语法本身不支持用单引号包裹字符串参数,HYPERLINK的链接地址、显示文本两个参数都必须用双引号包裹,才能被Sheets识别为合法文本值。
正确写法
不需要替换单引号,也不需要额外在外层加包裹符号,只需要对公式内部的双引号做标准JSON转义即可,也就是每个公式里的双引号前面加反斜杠。
正确的请求示例:
PUT https://sheets.googleapis.com/v4/spreadsheets/MY_SHEET_ID/values/UPDATED_CELL?valueInputOption=USER_ENTERED&key=[YOUR_API_KEY] HTTP/1.1 Authorization: Bearer [YOUR_ACCESS_TOKEN] Accept: application/json Content-Type: application/json { "values": [ [ "=HYPERLINK(\"#gid=MY_GID&range=A1\", \"test3\")" ] ] }
注意事项
- 确认请求参数
valueInputOption必须设为USER_ENTERED,如果设为RAW会把整个公式当普通字符串写入,不会自动解析为公式 - 写入后的单元格会保留标准的HYPERLINK公式格式,点击即可跳转到对应gid的工作表指定A1单元格,不会再报意外字符错误
- 不要尝试用单引号替换公式内的双引号,不符合Sheets公式语法规则,写入后会被识别为无效公式。
内容的提问来源于stack exchange,提问作者deschen
相关产品推荐
相关产品推荐

