3

これはばかげた質問に聞こえるかもしれませんが、私はWebを何度も検索しましたが、必要なものが見つかりませんでした...

さまざまなスプレッドシートのデータから、表示したいグラフを作成できました。シートにデータを貼り付けずに、グラフをスプレッドシートに挿入したいと思います。これは可能ですか?

UIAppを使用して表示することもできますが、メニューやボタンから呼び出さなくても、スプレッドシートに表示したいと思います。

ご協力いただきありがとうございます、

エデラン

-これまでの私のコードは、デバッガツールで確認できるように機能しています。

  function BuildMTChart(){
  var ss = SpreadsheetApp.getActiveSpreadsheet() 
  var DataChart = MTLastMonth()  // MTLastMonth() returns an array with the data I need
  var dSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Dashboard");

      var dataTable = Charts.newDataTable();
          dataTable.addColumn(Charts.ColumnType['DATE'], 'Date');
          dataTable.addColumn(Charts.ColumnType['NUMBER'], 'Maintenance');
          dataTable.addColumn(Charts.ColumnType['NUMBER'], 'Troubleshooting');
          for ( var i = 0; i < DataChart.length; i++) {
            dataTable.addRow([DataChart[i][0], DataChart[i][1], DataChart[i][2]]);
          }
          dataTable.build();        

    var chart = Charts.newAreaChart()
        .setDataTable(dataTable)         
        .setDimensions(800, 400)         
        .setYAxisTitle("Hours")
        .setXAxisTitle("Date")
        .build();
4

2 に答える 2

3

EmbeddedChartBuilderにはsetDataTableメソッドがありました。しかし、私はそれを機能させることができませんでした。

私が理解している限り、スクリプトからスプレッドシートにグラフを追加できますが、それらのデータはスプレッドシート自体に含まれている必要があります。

var chart = workingSheet.newChart()
  .setChartType(Charts.ChartType.COLUMN)
  .setPosition(8, 2, 0, 0)
  .setTitle("Sample chart")
  .setXAxisTitle("...")
  .setYAxisTitle("...")
  .addRange(range)    // This could be smth. like SpreadsheetApp.getActiveSpreadsheet().getRange("B2:C8")
  .build();

SpreadsheetApp.getActiveSpreadsheet().insertChart(chart);

ここでは、いくつかの高度なチャートオプションを設定できると書かれています。たぶん、そこにもDataTableを渡す方法がありますか?

今のところ、スプレッドシートにデータを入力してから、範囲に基づいてグラフを追加することをお勧めします。このデータをGoogleドキュメントに表示したくない場合は、列を非表示にするか、新しいシートに移動できます。

于 2013-02-28T14:38:25.717 に答える
0

これをUiAppに追加し、適切なサイズに設定してトリガーを設定し、スプレッドシートを開くたびにUIアプリが表示されるようにすることはできますか?このようなもの。

function onOpen() {
  return myUiApp();
}

function myUiApp() {
  //All your code to build the chart and add it to the app
}
于 2012-08-23T09:39:41.923 に答える