从多个 Google 工作表创建实时更新显示
Creating live updating display from multiple Google Sheets
我在 Google Sheet 秒传播 sheet 的四 Sheet 秒内更新了结果数据。我想在外部显示器(screen/projector)上依次显示每个 sheet 的实时内容,sheet 的每次更改之间的更新率为 10 到 15 秒。我一直找不到任何完整的解决方案。
我看过的东西:
将每页的数据复制到Google 幻灯片中,保持实时数据更新。然后发布四张幻灯片,指定刷新率。这有效,但它不会在源 Sheets 中的数据更改时更新幻灯片出版物。您必须进入幻灯片并进行手动刷新。然后您还必须刷新显示已发布幻灯片的网页。它确实有效,但我真的希望显示在 Sheet 中的数据更新后立即更新。
显示 Google Sheet 本身,每 10 秒 select 每个 sheet 轮流显示。这感觉可行,使用一点 AppsScript Java 我可以 select 个人 sheets。我一直无法解决的问题是触发器的最短计时器为 1 分钟,并且我无法获得 select 和 sheet 的触发函数。我认为触发器的上下文可能会阻止此工作。
使用'something else'从GoogleSheet中提取数据,并创建实时更新显示。我一直无法找到任何可以做到这一点的东西。我怀疑网络编码比我好得多的人可以实现它,但我尽量不要变得太复杂。
非常感谢任何建议。
您可以创建本地 HTML 文件,在 iframe 中显示传播 sheet 并将 iframe-URL 更改为下一个
sheet 每 15 秒一次。这样,页面将使用本地 JavaScript 更新,而不是使用 GAS 触发器,所以
您不必等待 1 分钟。
- 将下一个代码保存为 HTML 文件。
- 更新价差sheetUrl和sheetIds变量
- 在浏览器中打开文件(我推荐 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>
我在 Google Sheet 秒传播 sheet 的四 Sheet 秒内更新了结果数据。我想在外部显示器(screen/projector)上依次显示每个 sheet 的实时内容,sheet 的每次更改之间的更新率为 10 到 15 秒。我一直找不到任何完整的解决方案。
我看过的东西:
将每页的数据复制到Google 幻灯片中,保持实时数据更新。然后发布四张幻灯片,指定刷新率。这有效,但它不会在源 Sheets 中的数据更改时更新幻灯片出版物。您必须进入幻灯片并进行手动刷新。然后您还必须刷新显示已发布幻灯片的网页。它确实有效,但我真的希望显示在 Sheet 中的数据更新后立即更新。
显示 Google Sheet 本身,每 10 秒 select 每个 sheet 轮流显示。这感觉可行,使用一点 AppsScript Java 我可以 select 个人 sheets。我一直无法解决的问题是触发器的最短计时器为 1 分钟,并且我无法获得 select 和 sheet 的触发函数。我认为触发器的上下文可能会阻止此工作。
使用'something else'从GoogleSheet中提取数据,并创建实时更新显示。我一直无法找到任何可以做到这一点的东西。我怀疑网络编码比我好得多的人可以实现它,但我尽量不要变得太复杂。
非常感谢任何建议。
您可以创建本地 HTML 文件,在 iframe 中显示传播 sheet 并将 iframe-URL 更改为下一个 sheet 每 15 秒一次。这样,页面将使用本地 JavaScript 更新,而不是使用 GAS 触发器,所以 您不必等待 1 分钟。
- 将下一个代码保存为 HTML 文件。
- 更新价差sheetUrl和sheetIds变量
- 在浏览器中打开文件(我推荐 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>