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;
}

方法

方法返回类型简介
build()DataViewDefinition构建并返回使用此构建器构建的数据视图定义对象。
setColumns(columns)DataViewDefinitionBuilder设置要包含在数据视图中的列的索引,并指定角色列信息。

详细文档

build()

构建并返回使用此构建器构建的数据视图定义对象。

返回

DataViewDefinition - 使用此构建器构建的数据视图定义对象。


setColumns(columns)

设置要包含在数据视图中的列的索引,并指定角色列信息。列索引的子集是指数据源派生自数据源的各列。

列角色描述列中数据的用途:例如,列中可能包含描述提示文本、数据点注解或不确定性指示的数据。如需了解详情,请参阅 Google 图表文档中的 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 - 此构建器对于链接非常有用。