【问题标题】:Is possible to make a macro in google spreadsheet to execute a python code?是否可以在谷歌电子表格中创建一个宏来执行 python 代码?
【发布时间】:2020-02-22 17:19:24
【问题描述】:

就我个人而言,我觉得在 python 中编写脚本更舒服,而且还有比宏更多的库可供使用。但是如果没有选择.. 提前谢谢你。

【问题讨论】:

  • 我现在如何连接 python 和谷歌电子表格,但不是相反。我想如果你点击谷歌电子表格中的一个按钮,运行 python 脚本。
  • 那么你知道这是否可能吗?

标签: python google-apps-script google-sheets


【解决方案1】:

您的问题可以通过使用 onOpen(e) 触发器和在 Google Cloud 上托管您的 python script 来解决。

1.使用onOpen(e) 触发器

onOpen(e) 触发器用于在电子表格每次打开时在电子表格中创建菜单 MY MENU。此外,子菜单项TRIGGER THE PYTHON SCRIPT 将关联runScript() 功能,每次单击它都会运行该功能。

上述行为可以通过在 Apps Script 中使用这个 sn-p 来实现

function onOpen(e) {
  SpreadsheetApp.getUi()
      .createMenu('MY MENU')
      .addItem('TRIGGER THE PYTHON SCRIPT', 'runScript')
      .addToUi();
}

2。在 Google Cloud 上托管您的 Python 脚本

您应该将您的 Python 脚本作为 Cloud Function 托管在 Google Cloud 中并运行代码。

runScript() 是由上面的TRIGGER THE PYTHON SCRIPT 菜单触发的功能,sn-p 看起来像这样。

function runScript() {
  var params = {
    'method': 'post',
    'headers': {
      'contentType': 'application/json',
      'payload': '{"name":"Name"}'
    }
  };
  var pyScript = UrlFetchApp.fetch('https://YOUR_REGION-YOUR_PROJECT_ID.cloudfunctions.net/FUNCTION_NAME', params);
}

注意:可能必须根据您的脚本和所需的操作更改params

参考

【讨论】:

    【解决方案2】:

    我想你可以自己运行一个脚本并通过 API 与电子表格进行通信,但据我所知,你必须使用 Apps Script 来运行电子表格中的脚本。

    Google Sheets API Python quickstart
    Google Apps Script

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-28
      • 1970-01-01
      • 2021-07-26
      • 2016-01-03
      • 2013-12-05
      • 2021-04-22
      相关资源
      最近更新 更多