You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Google Sheets调用Google Colaboratory脚本?

实现Google Sheets按钮调用Colab部署的Python脚本方案

1. 把Colab脚本转成可触发的HTTP接口

你已经在Colab跑通了Python脚本,现在需要把它封装成能通过HTTP请求触发的服务,这里提供快速落地的方法:

  • 在Colab安装ngrok:!pip install pyngrok
  • 导入并设置ngrok的授权token(去ngrok官网免费获取):
    from pyngrok import ngrok
    ngrok.set_auth_token("你的ngrok授权token")
    
  • 用Flask写一个简单接口,把你的gspread业务逻辑包裹进去:
    from flask import Flask
    import gspread
    from oauth2client.service_account import ServiceAccountCredentials
    
    app = Flask(__name__)
    
    # 你的gspread业务逻辑
    def execute_python_task():
        scope = ["https://spreadsheets.google.com/feeds", "https://www.googleapis.com/auth/drive"]
        creds = ServiceAccountCredentials.from_json_keyfile_name("你的服务账号密钥.json", scope)
        client = gspread.authorize(creds)
        sheet = client.open("目标表格名称").sheet1
        # 这里替换成你实际的表格操作逻辑
        sheet.update_cell(1, 1, "通过按钮触发的Colab脚本更新")
    
    @app.route('/run-task', methods=['POST'])
    def run_task():
        execute_python_task()
        return "脚本执行完成"
    
    # 启动服务并生成公网访问地址
    public_url = ngrok.connect(5000)
    print("公网接口地址:", public_url)
    app.run(port=5000)
    
  • 运行代码后复制输出的公网地址,格式类似https://xxxx-xx-xx-xx-xx.ngrok.io/run-task

2. 在Google Sheets中编写触发用的Apps Script

  • 打开目标Google Sheets,点击顶部菜单「扩展程序」→「Apps Script」
  • 删除默认代码,写入以下脚本(替换成你的公网接口地址):
    function triggerColabScript() {
      const apiUrl = "你的ngrok公网接口地址/run-task";
      const requestOptions = {
        method: "POST",
        muteHttpExceptions: true // 便于查看请求错误信息
      };
      const response = UrlFetchApp.fetch(apiUrl, requestOptions);
      // 可选:弹出执行结果提示
      SpreadsheetApp.getUi().alert(response.getContentText());
    }
    
  • 保存脚本(命名例如ColabScriptTrigger),首次运行会提示权限授权,按指引完成授权即可

3. 给Sheets添加按钮并绑定脚本

  • 返回Sheets界面,点击「插入」→「绘图」,绘制一个按钮样式的图形(比如矩形,添加文字「执行Python脚本」)
  • 选中绘制好的图形,点击右上角三个点,选择「分配脚本」,输入刚才的函数名triggerColabScript
  • 现在点击这个按钮,就会触发Apps Script请求你的Colab接口,执行Python代码

注意事项

  • ngrok免费版的公网地址会在Colab重启后变化,若需要稳定地址,建议将Python脚本部署为Google Cloud Function或Cloud Run,获取固定域名
  • 服务账号密钥需妥善保管,可通过Colab的「文件」→「上传」功能将密钥文件导入环境
  • 测试时可先在浏览器中手动发送POST请求到接口地址,确认脚本能正常执行后再绑定按钮

内容的提问来源于stack exchange,提问作者ard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 11:52:15