首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Google自动从CoinGecko收集历史数据

使用Google自动从CoinGecko收集历史数据
EN

Stack Overflow用户
提问于 2020-09-30 09:30:11
回答 2查看 885关注 0票数 0

一直在使用Google从CoinGecko API中收集历史比特币数据。手动方法,我必须打开工作表并复制和“只粘贴值”来粘贴历史记录列表中的数据。历史记录在左边,数据收集在右边。如果可能的话,我想让这个过程自动化。当前代码提取了10行数据,这些数据还没有在历史记录中。历史记录行以“底部”字段结尾,以指示页面底部。脚本编辑器已设置为在午夜运行以进行数据收集。下面是我的例子:https://docs.google.com/spreadsheets/d/1kAcVtF2x9ox7gNCt5liQdhApQpGaBw1kl4I8PjKMfx8/edit?usp=sharing

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-09-30 10:57:29

回答

您必须使用SheetRange类。

代码

为了使该过程自动化,在现有的Apps脚本中添加以下代码:

代码语言:javascript
复制
function Pull_History_bitcoin() {

  //PREVIOUS CODE

  var days = parseInt(targetSheet.getRange("J4").getValue().toString());

  if (days > 0) {
    var range = targetSheet.getRange("G6:J" + (5+days)).getValues();
    var lastRowHistory = targetSheet.getRange("G1").getValue();
    var nextLastRowHistory = parseInt(lastRowHistory[1]) + days;

    var bottomCell = targetSheet.getRange("A" + nextLastRowHistory);
    bottomCell.setValue("BOTTOM");

    var nextRange = targetSheet.getRange(`${lastRowHistory}:D` + (nextLastRowHistory - 1));
    nextRange.setValues(range);
  }
}

其中,天数定义调用外部API后的条目数。

不要担心四舍五入的值,因为它们只是显示四舍五入,当前的值与原始值一样。

参考文献

活页类

距离级

票数 0
EN

Stack Overflow用户

发布于 2020-10-04 18:40:00

在这里,找到我的完整谷歌应用-脚本作为参考,任何人希望从免费的CoinGecko Api服务获取密码历史信息。

代码语言:javascript
复制
function Pull_History_bitcoin() {
  var targetSS = SpreadsheetApp.getActive();
  var targetSheet = targetSS.getSheetByName("bitcoin");

  // To force an update
  targetSheet.insertRowBefore(3);
  targetSheet.deleteRow(3);

  // Copy newly acquired history into the history columns
  var days = parseInt(targetSheet.getRange("J4").getValue().toString());

  if (days > 0) {
    var range = targetSheet.getRange("G6:J" + (5+days)).getValues();
    var lastRowHistory = targetSheet.getRange("G1").getValue();
    //var nextLastRowHistory = parseInt(lastRowHistory[1],4) + days;
    var nextLastRowHistoryStr = lastRowHistory.slice(1);
    var nextLastRowHistory = Number(nextLastRowHistoryStr) + days;

    var nextRange = targetSheet.getRange(`${lastRowHistory}:D` + (nextLastRowHistory - 1));
    nextRange.setValues(range);

    var bottomCell = targetSheet.getRange("A" + nextLastRowHistory);
    bottomCell.setValue("BOTTOM");
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64134680

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档