1

Google サイトからリンクされた一連の公開済みダッシュボードがあります。ダッシュボードはすべて Google スプレッドシートからデータを取得するもので、かなり基本的なもので、ほとんどがフィルター可能なデータテーブルです。これは、多数の vlookup といくつかの importrange、いくつかのフィルター式、いくつかのクエリ式を含むかなり大きなスプレッドシートです...多くのことが進行中です...多くの場合、「一部の式の処理に時間がかかっています」というメッセージが表示されます。 "

スプレッドシートを開いている場合、ダッシュボードはうまく機能します。または、他の誰かが開いている場合。ただし、スプレッドシートを閉じてしばらく待ってから、スプレッドシートを閉じたときにダッシュボードを実行しようとすると、多くの場合、ダッシュボードにデータが取り込まれません。

ダッシュボードがデータの読み込みをもう少し待つか、可能であれば「バックグラウンド」でスプレッドシートを開く必要があるのではないかと思います。何かご意見は?これが私が持っているダッシュボードの例です:

    function doGet() {

  var ss = SpreadsheetApp.openById("0Aq2VphSIvT4NdE1IRTlzV0NyWF9XZ1hsX2hXZG0xdHc");
  var lastrow = ss.getSheetByName('CIC Student Aggregate').getLastRow();
  var data = ss.getSheetByName('CIC Student Aggregate').getRange(1, 1, lastrow, 13);

  var StudentFilter = Charts.newStringFilter()
        .setFilterColumnLabel("Student Name")
        .build();
  var TotalsFilter = Charts.newNumberRangeFilter()
      .setFilterColumnLabel("Total Interactions")
      .build();

  var tablechart = Charts.newTableChart()
      .setDimensions(680, 550)
      .setDataViewDefinition(Charts.newDataViewDefinition()
                         .setColumns([0,1,7,8,9,10,11,12]))
    .build();   

    var piechart = Charts.newPieChart()
      .setDimensions(330, 350)
      .setDataViewDefinition(Charts.newDataViewDefinition()
                         .setColumns([0,12]))
      .build();  

  var dashboard = Charts.newDashboardPanel()
      .setDataTable(data)
      .bind([StudentFilter,TotalsFilter], [tablechart,piechart])
      .build();


  var uiApp = UiApp.createApplication()
      .setTitle("Interactions Totals")
      .setWidth(980)
      .setHeight(600);

 dashboard.add(uiApp.createVerticalPanel()
               .add(StudentFilter).add(TotalsFilter)
               .setSpacing(1)
    .add(uiApp.createHorizontalPanel()
        .add(uiApp.createVerticalPanel())
              .add(tablechart).add(piechart) 
        ));
  uiApp.add(dashboard);
  return uiApp;
}
4

1 に答える 1

0

まだ問題がありますか?

その場合、ダッシュボードに「importrange」がありますか?

importrange を介してデータが生成された範囲で appscript を使用してデータを読み取る場合、スプレッドシートが閉じている場合は何も返されません。

実際、「importrange」は、ユーザーがスプレッドシートを開いたときにのみトリガーされます。Appscript は、スプレッドシートを開いたときに「importrange」をトリガーしません。

于 2013-02-28T16:31:43.013 に答える