
GASを使用したWebアプリを作成し始めて1週間ほど経ったものです。
只今、リアルタイム更新のランキング表を作ろうとしています。
●したいこと
スプレッドシートの表をHTMLに表示させ、その部分のみ自動更新にしたいと思っています。
シート自体は分ごとにトリガーで点数を基に降順に書き換えられるようにしています。
doGet()にログインページを用意しているのでページ全体の更新は行いたくありません。
また、シート自体の埋め込みも試みましたが、見栄え的に無しの方向でいきたいです。
●困っていること
どうやらsetInterval()を使うことで自動更新できるということはわかりましたが、
うまくテーブルに取り込むことができません。
どのようにしたら閲覧者に更新をかけさせることなく、
シートの最新の状態をhtmlに反映できるでしょうか?
以下に現在のコード等を貼っておきます
ranking(スプレッドシート)
ランキング | チーム名 | 点数 |
---|---|---|
1 | user1 | 21 |
2 | user2 | 12 |
3 | user4 | 3 |
4 | user3 | 2 |
ranking.html
1<!DOCTYPE html> 2<html> 3 <head> 4 <base target="_top"> 5 <?!= HtmlService.createHtmlOutputFromFile('css').getContent(); ?> 6 </head> 7 <body> 8 <input type="hidden" name="page" value="ranking"> 9 <table> 10 <? 11 var file = SpreadsheetApp.openById("スプレッドシートのID"); 12 var sheet = file.getSheetByName('ranking'); 13 const myData = sheet.getDataRange().getValues(); 14 for(var i=0;i<myData.length;i++){ 15 output._ = '<tr><td>' + myData[i][0] + '</td><td>' + myData[i][1] + '</td><td>'+myData[i][2] + '</td></tr>'; 16 } 17 ?> 18 19 </table> 20 21 <?!= HtmlService.createHtmlOutputFromFile('js').getContent(); ?> 22 </body> 23</html>
このような場での質問も初めてで稚拙な文章だと思いますが、
何かアドバイスをいただけたら嬉しいです。


回答1件
あなたの回答
tips
プレビュー