从多个 Google 工作表创建实时更新显示

Creating live updating display from multiple Google Sheets

我在 Google Sheet 秒传播 sheet 的四 Sheet 秒内更新了结果数据。我想在外部显示器(screen/projector)上依次显示每个 sheet 的实时内容,sheet 的每次更改之间的更新率为 10 到 15 秒。我一直找不到任何完整的解决方案。

我看过的东西:

  1. 将每页的数据复制到Google 幻灯片中,保持实时数据更新。然后发布四张幻灯片,指定刷新率。这有效,但它不会在源 Sheets 中的数据更改时更新幻灯片出版物。您必须进入幻灯片并进行手动刷新。然后您还必须刷新显示已发布幻灯片的网页。它确实有效,但我真的希望显示在 Sheet 中的数据更新后立即更新。

  2. 显示 Google Sheet 本身,每 10 秒 select 每个 sheet 轮流显示。这感觉可行,使用一点 AppsScript Java 我可以 select 个人 sheets。我一直无法解决的问题是触发器的最短计时器为 1 分钟,并且我无法获得 select 和 sheet 的触发函数。我认为触发器的上下文可能会阻止此工作。

  3. 使用'something else'从GoogleSheet中提取数据,并创建实时更新显示。我一直无法找到任何可以做到这一点的东西。我怀疑网络编码比我好得多的人可以实现它,但我尽量不要变得太复杂。

非常感谢任何建议。

您可以创建本地 HTML 文件,在 iframe 中显示传播 sheet 并将 iframe-URL 更改为下一个 sheet 每 15 秒一次。这样,页面将使用本地 JavaScript 更新,而不是使用 GAS 触发器,所以 您不必等待 1 分钟。

  1. 将下一个代码保存为 HTML 文件。
  2. 更新价差sheetUrl和sheetIds变量
  3. 在浏览器中打开文件(我推荐 Firefox)

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title></title>
</head>
<body>
    <iframe id="iframe1" src="" style="position:fixed; top:0; left:0; bottom:0; right:0; width:100%; height:100%; border:none; margin:0; padding:0; overflow:hidden; z-index:999999;"> Your browser doesn't support iframes
    </iframe>
</body>

<script>
    var spreadsheetUrl = "https://docs.google.com/spreadsheets/d/123/edit#gid=";
    var sheetIds = ["12345", "23456", "34567", "45678"];
    var currentSheet = 0; //0-3
    var myIframe = document.getElementById("iframe1");

    // Initializes iframe
    myIframe.src = spreadsheetUrl + sheetIds[currentSheet];

    // Updates iframe very 10,000 milliseconds
    setInterval(function() {
        // Increases sheet
        currentSheet++;

        // If 4th sheet has been shown, then go back to 1st sheet
        if (currentSheet > 3)
            currentSheet = 0;

        // Updates iframe
        myIframe.src = spreadsheetUrl + sheetIds[currentSheet];
    }, 10000);
</script>
</html>