gpt4 book ai didi

google-apps-script - 定期刷新 IMPORTXML() 电子表格函数

转载 作者:行者123 更新时间:2023-12-03 15:52:56 24 4
gpt4 key购买 nike

我有一张大表,大约有 30 importxml从通常每天更新两次的网站获取数据的功能。

我想运行 importxml及时(每 8 小时)为我的 Google 电子表格运行以将数据保存在另一个工作表中。保存已经有效,但更新没有!

我读了 Google Spreadsheet row update它可能每 2 小时运行一次,但我不相信这是真的,因为自从我将它添加到我的工作表后,当电子表格未打开时,没有任何更改或更新。

我怎样才能“触发”importxml以一种简单的方式在我的 Google 电子表格中运行,因为我有很多 importxml里面的功能?

最佳答案

我对 Mogsdad 的回答做了一些调整:

  • 修复了 releaseLock()调用放置
  • 更新(或添加)一个查询字符串参数到导入函数中的 url(与存储、删除、等待 5 秒,然后恢复所有相关公式相反)
  • 适用于电子表格中的特定工作表
  • 显示上次更新时间

  • ...
    function RefreshImports() {
    var lock = LockService.getScriptLock();
    if (!lock.tryLock(5000)) return; // Wait up to 5s for previous refresh to end.

    var id = "[YOUR SPREADSHEET ID]";
    var ss = SpreadsheetApp.openById(id);
    var sheet = ss.getSheetByName("[SHEET NAME]");
    var dataRange = sheet.getDataRange();
    var formulas = dataRange.getFormulas();
    var content = "";
    var now = new Date();
    var time = now.getTime();
    var re = /.*[^a-z0-9]import(?:xml|data|feed|html|range)\(.*/gi;
    var re2 = /((\?|&)(update=[0-9]*))/gi;
    var re3 = /(",)/gi;

    for (var row=0; row<formulas.length; row++) {
    for (var col=0; col<formulas[0].length; col++) {
    content = formulas[row][col];
    if (content != "") {
    var match = content.search(re);
    if (match !== -1 ) {
    // import function is used in this cell
    var updatedContent = content.toString().replace(re2,"$2update=" + time);
    if (updatedContent == content) {
    // No querystring exists yet in url
    updatedContent = content.toString().replace(re3,"?update=" + time + "$1");
    }
    // Update url in formula with querystring param
    sheet.getRange(row+1, col+1).setFormula(updatedContent);
    }
    }
    }
    }

    // Done refresh; release the lock.
    lock.releaseLock();

    // Show last updated time on sheet somewhere
    sheet.getRange(7,2).setValue("Rates were last updated at " + now.toLocaleTimeString())
    }

    关于google-apps-script - 定期刷新 IMPORTXML() 电子表格函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33872967/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com