Class DataViewDefinitionBuilder

DataViewDefinitionBuilder

DataViewDefinition オブジェクトのビルダー。

ビルダーの使用例を次に示します。データは Google スプレッドシートからインポートされます。

function doGet() {
  // This example creates two table charts side by side. One uses a data view definition to
  // restrict the number of displayed columns.

  // Get sample data from a spreadsheet.
  var dataSourceUrl = 'https://docs.google.com/spreadsheet/tq?range=A1%3AF' +
      '&key=0Aq4s9w_HxMs7dHpfX05JdmVSb1FpT21sbXd4NVE3UEE&gid=4&headers=-1';

  // Create a chart to display all of the data.
  var originalChart = Charts.newTableChart()
      .setDimensions(600, 500)
      .setDataSourceUrl(dataSourceUrl)
      .build();

  // Create another chart to display a subset of the data (only columns 1 and 4).
  var dataViewDefinition = Charts.newDataViewDefinition().setColumns([0, 3]);
  var limitedChart = Charts.newTableChart()
      .setDimensions(200, 500)
      .setDataSourceUrl(dataSourceUrl)
      .setDataViewDefinition(dataViewDefinition)
      .build();

  var htmlOutput = HtmlService.createHtmlOutput();
  var originalChartData = Utilities.base64Encode(originalChart.getAs('image/png').getBytes());
  var originalChartUrl = "data:image/png;base64," + encodeURI(originalChartData);
  var limitedChartData = Utilities.base64Encode(limitedChart.getAs('image/png').getBytes());
  var limitedChartUrl = "data:image/png;base64," + encodeURI(limitedChartData);
  htmlOutput.append("<table><tr><td>");
  htmlOutput.append("<img border=\"1\" src=\"" + originalChartUrl + "\">");
  htmlOutput.append("</td><td>");
  htmlOutput.append("<img border=\"1\" src=\"" + limitedChartUrl + "\">");
  htmlOutput.append("</td></tr></table>");
  return htmlOutput;
}

Methods

メソッド戻り値の型概要
build()DataViewDefinitionこのビルダーを使用して作成されたデータビュー定義オブジェクトをビルドして返します。
setColumns(columns)DataViewDefinitionBuilderデータビューに含める列のインデックスを設定し、ロール列の情報を指定します。

詳細なドキュメント

build()

このビルダーを使用して作成されたデータビュー定義オブジェクトをビルドして返します。

リターン

DataViewDefinition - このビルダーを使用して作成されたデータビュー定義オブジェクト。


setColumns(columns)

データビューに含める列のインデックスを設定し、ロール列の情報を指定します。この列インデックスのサブセットは、データビューの取得元となるデータソースの列を参照します。

列ロールは、その列のデータの目的を表します。たとえば、ツールチップ テキスト、データポイント アノテーション、不確実性インジケーターを説明するデータを保持する列があります。詳しくは、Google Chart のドキュメントの DataTable のロールをご覧ください。

スプレッドシートに A1:C3 の次のデータがあるとします。

"abc", 20, "blue"
"def", 30, "red"
"ghi", 40, "orange"
次のコードでは、それぞれ異なる色の棒グラフが作成されます。色はスタイル「ロール列」で割り当てられます。
var COLUMN_SPEC = [
  0, // categories
  1, // counts
  {sourceColumn: 2, role: 'style'}
];

function roleColumnChart() {
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = spreadsheet.getActiveSheet();
  var viewSpec = Charts.newDataViewDefinition()
      .setColumns(COLUMN_SPEC)
      .build();
  var chartBuilder = sheet.newChart()
      .setChartType(Charts.ChartType.BAR)
      .setDataViewDefinition(viewSpec)
      .setOption('useFirstColumnAsDomain', true)
      .setPosition(5, 1, 0, 0)
      .setOption('hAxis', { title: 'Counts' })
      .setOption('vAxis', { title: 'Categories' })
      .addRange(sheet.getRange('A1:C3'));
  sheet.insertChart(chartBuilder.build());
};

パラメータ

名前説明
columnsObject[]データビューに含める列インデックスまたは列の説明(オブジェクト)の配列。列の説明では、列のロールを定義します。データテーブルとデータビュー列の列挙値は、ゼロベースです。

リターン

DataViewDefinitionBuilder - このビルダー。チェーンに役立ちます。