3

私は過去数日間、Google ビジュアライゼーションを検討しており、組み込みの挿入 -> チャート クリエーターを使用して、単一の Web ページまたはスプレッドシートで動作させることに成功しています。しかし、JavaScript を自分で編集するときは、このデータが元の Google スプレッドシートに表示されるようにしたいと考えています。私はアプリのスクリプトを調べましたが、それをアプリケーションとして公開することによってのみ機能させることができ、その後、まったく別の Web ページに移動します。

次のようなカスタムJavaScriptを埋め込む方法はありますか

function drawVisualization() {
    // Create and populate the data table.
    var data = google.visualization.arrayToDataTable([
      ['Region', 'count'],
      ['West', 8000],
      ['South', 7272],
      ['Northeast', 5333],
      ['Midwest', 4444],
      ['Southwest', 5714]
    ]);

    // Create and draw the visualization.
    new google.visualization.PieChart(document.getElementById('visualization')).
        draw(data, {title:"Sales Per Region"});
  }

Google ドキュメントまたはスプレッドシートに挿入しますか、それともサポートされていませんか?

4

1 に答える 1

1

Charts Servicesを使用して、UiApp を介して表示できます

PieChart の GS コードの例

function getChart(dataTable){
  var chartBuilder = Charts.newPieChart()
       .setTitle('Sales Per Region')
       .setDimensions(600, 500)
       .set3D()
       .setDataTable(dataTable);

  return chartBuilder.build(); 
}

function showChart(){
  var dataTable = Charts.newDataTable()
       .addColumn(Charts.ColumnType.STRING, "Region")
       .addColumn(Charts.ColumnType.NUMBER, "Count")
       .addRow(['West', 8000])
       .addRow(['South', 7272])
       .addRow(['Northeast', 5333])
       .addRow(['Midwest', 4444])
       .addRow(['Southwest', 5714])
       .build();

  var chart = getChart(dataTable)

  //insert into the spreadsheet
  SpreadsheetApp.getActiveSheet().insertChart(chart)
}

for show in doc 最後の行を次のように置き換える必要があります

  DocumentApp.getUi().showSidebar(UiApp.createApplication().add(chart))

いずれにせよ、これらのグラフはドキュメントのコンテンツではなく、ダイアログ ボックス (またはサイドバー) に表示されます。ドキュメントでは、画像に変換して挿入できるので、

    var chart = getChart(dataTable)
    var imageChart = chart.getAs('image/jpeg');

そして、コンテンツに追加するには

  DocumentApp.getActiveDocument().getBody().appendImage(imageChart);
于 2013-07-02T22:25:41.567 に答える