1

Google Appsスプレッドシートを使用するプログラムがあり、データをスプレッドシートに読み書きしますが、スプレッドシートで変更があった場合に、guiがスプレッドシートのデータで自動的に更新されるようにしたいと思います。これを使用して、あるコンピューターで表示されるページを作成し、次に別のコンピューターでボタンをクリックすると、別のコンピューターからの数が増えます。Googleアプリのスクリプト言語でウェブアプリのラベルを自動更新する方法はありますか?

 var dataByDepartment = {};
  var departments = [];

  var dataSs = SpreadsheetApp.openById(DATA_SPREADSHEET_ID);
  var dataSheet = dataSs.getSheets()[0]
  var data = getRowsData(dataSheet);

function doGet() {
  var app = UiApp.createApplication();
  app.add(app.loadComponent("GNWDataGui"));

  app.getElementById('deathLabel').setText("gameDeaths: " + data[0].deaths);
  app.getElementById('killLabel').setText("gameKills: " + data[0].kills);

  return app;

}

function deathClickHandler(e) {
  var app = UiApp.getActiveApplication();
  var sheet = dataSs.getSheetByName('General');

  data[0].deaths += 1;
  app.getElementById('deathLabel').setText("Death: " + data[0].deaths);
  setRowsData(sheet, data);

  app.close();
  return app;
}

function deathClickMinHandler(e) {
  var app = UiApp.getActiveApplication();
  var sheet = dataSs.getSheetByName('General');

  data[0].deaths -= 1;
  app.getElementById('deathLabel').setText("Death: " + data[0].deaths);
  setRowsData(sheet, data);

  app.close();
  return app;
}


function autoRefreshHandler(e) {

       var app = UiApp.getActiveApplication();

  app.getElementById('autoRefreshButton').setText("Auto Refresh");

  data = getRowsData(dataSheet);
  app.getElementById('deathLabel').setText("gameDeaths: " + data[0].deaths);
  app.getElementById('killLabel').setText("gameKills: " + data[0].kills);

  app.close();
  return app; 

}
4

1 に答える 1

0

文書化されていない機能があります:

UiApp.addTimer(ハンドラ, ミリ秒);

UiApp インスタンスを返し、ハンドラーでタイマーを再度実行することを忘れないでください。

于 2013-08-17T16:46:40.060 に答える