【问题标题】:How can I cause a python script to run everytime I open a Google Sheet每次打开 Google 表格时如何使 python 脚本运行
【发布时间】:2021-12-27 01:37:46
【问题描述】:

我刚开始使用 Google API,并且能够在 Python 上编写一些很酷的东西(对我来说很酷),但我想找到一种方法让程序运行而无需打开 Spyder。

我有一个包含所有加密货币余额的电子表格。我编写了一个代码,它会扫描一个价格跟踪网站,并在单独的列中输入每个余额的美元值。我希望每次打开工作表时都运行脚本(更新价格)。这可能吗?

即使讨论这个我也找不到任何信息,我找到的少量信息与 Excel 有关。我可以在 Google 表格上执行此操作吗?

【问题讨论】:

  • 没有。 Google 表格中没有宏。您当然可以拥有一个每隔几个小时运行一次并使用 Google API 更新 Google 表格文档的 Python 应用程序,但在这种情况下,您为什么不只使用数据库呢?
  • "但是在这种情况下,你为什么不直接使用数据库呢?"我认为这是因为 OP 希望有一种简单的方法来查看数据。
  • 我不明白你为什么要使用 python。 GAS 中的一个脚本就足够了。
  • 您无法在打开工作表后自动运行 Python 脚本(尽管您可以每 X 分钟运行一次并让它更新工作表),但您可以运行应用程序脚本。在您的场景中这会是一种有效的方法吗?
  • 请提供足够的代码,以便其他人更好地理解或重现问题。

标签: python google-sheets


【解决方案1】:

我过去写了一个脚本,当你打开电子表格时下载值。但您也可以触发函数以某个频率运行。

function onOpen(){
  relaodJson()
}

function relaodJson(){   
  var f = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var der = f.getLastRow()+1
  var col = columnToLetter(f.getLastColumn())
  f.getRange('A'+der).setValue(new Date())
  var sourceRange = f.getRange("B3:"+col+"3");
  var targetRange = f.getRange("B"+der+":"+col+der);
  targetRange.setValues(sourceRange.getValues());
  sourceRange.copyTo(targetRange, {formatOnly:true})
  f.getRange('A1').setValue(!f.getRange('A1').getValue());      
}

function pricePair(currencyPair) {    
  var url = 'https://api3.binance.com/api/v3/ticker/price?symbol=' + currencyPair;
  var reponse = UrlFetchApp.fetch(url);
  var json = reponse.getContentText();
  var data = JSON.parse(json);
  return data.price;  
}

function columnToLetter(column) {
  var temp, letter = '';
  while (column > 0) {
    temp = (column - 1) % 26;
    letter = String.fromCharCode(temp + 65) + letter;
    column = (column - temp - 1) / 26;
  }
  return letter;
}

https://docs.google.com/spreadsheets/d/18l4EJ4FmKfvUeEt56kYZcoQVRRYiA6Kbm6U4xoHC-CQ/copy

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多