0

現在、Google スプレッドシートからライブ データを読み取って表示する Google スクリプトを使用して Web アプリを構築しています。ただし、スプレッドシートが更新された場合に表示内容を自動的に更新したいのですが、

タイムトリガーを使用してアプリを更新しようとしましたが、喜びがありません...古いデータで静的なままです。

誰でも私を助けてもらえますか??

function doGet(e) {

  var app = UiApp.createApplication().setTitle('Customer Queue App');
  var ss = SpreadsheetApp.openById("SHEET_IDHERE");

  app.add(app.createLabel(new Date()).setId("label"))
  var mypannel = app.createHorizontalPanel();
   var mypannel = app.createHorizontalPanel();


  var ss = SpreadsheetApp.openById("sheetID_HERE")

  var nc11 = ss.getRange("a2")
  var nc12 = ss.getRange("b2")
  var nc13 = ss.getRange("c2")
  var nc14 = ss.getRange("d2")
  var nc15 = ss.getRange("e2")
  var nc16 = ss.getRange("f2")
  var nc17 = ss.getRange("g2")
  var nc21 = ss.getRange("a3")
  var nc22 = ss.getRange("b3")
  var nc23 = ss.getRange("c3")
  var nc24 = ss.getRange("d3")
  var nc25 = ss.getRange("e3")
  var nc26 = ss.getRange("f3")
  var nc27 = ss.getRange("g3")


  var nv11 = nc11.getValue()
  var nv12 = nc12.getValue()
  var nv13 = nc13.getValue()
  var nv14 = nc14.getValue()
  var nv15 = nc15.getValue()
  var nv16 = nc16.getValue()
  var nv17 = nc17.getValue()
  var nv21 = nc21.getValue()
  var nv22 = nc22.getValue()
  var nv23 = nc23.getValue()
  var nv24 = nc24.getValue()
  var nv25 = nc25.getValue()
  var nv26 = nc26.getValue()
  var nv27 = nc27.getValue()

  var mygrid = app.createGrid(5, 7).setId("grid");

  mygrid.setWidget(0, 0, app.createLabel(nv12));
  mygrid.setWidget(0, 1, app.createLabel(nv13));
  mygrid.setWidget(0, 2, app.createLabel(nv14));
  mygrid.setWidget(0, 3, app.createLabel(nv15));
  mygrid.setWidget(0, 4, app.createLabel(nv16));
  mygrid.setWidget(0, 5, app.createLabel(nv17));
  mygrid.setWidget(0, 6, app.createButton("Clear Customer").setId("cc1"));
    mygrid.setWidget(1, 0, app.createLabel(nv22));
  mygrid.setWidget(1, 1, app.createLabel(nv23));
  mygrid.setWidget(1, 2, app.createLabel(nv24));
  mygrid.setWidget(1, 3, app.createLabel(nv25));
  mygrid.setWidget(1, 4, app.createLabel(nv26));
  mygrid.setWidget(1, 5, app.createLabel(nv27));
  mygrid.setWidget(1, 6, app.createButton("Clear Customer").setId("cc2"));

  mygrid.setStyleAttribute("fontSize","65pt");
  mygrid.setStyleAttribute("margin-top","5px");
  mygrid.setStyleAttribute("font-weight","bold");
  mygrid.setStyleAttribute("color","black");

  mypannel.add(mygrid);

  app.add(mypannel);

  app.addTimer(app.createServerHandler("update") , 1000);

  return app;
}

function update(e){

  var app = UiApp.getActiveApplication();
  var ss = SpreadsheetApp.openById("SHEETIDHERE")

  app.getElementById("label").setText(new Date());

  app.getElementById("grid").setVisible(true);

  app.addTimer(app.createServerHandler("update") , 1000);

  return app;
}
4

1 に答える 1