Class EmbeddedChartBuilder

EmbeddedChartBuilder

EmbeddedChart の編集に使用するビルダー。グラフに加えた変更は、再作成されたグラフで Sheet.updateChart(chart) が呼び出されるまで保存されません。

var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getRange("A1:B8");
var chart = sheet.getCharts()[0];
chart = chart.modify()
    .addRange(range)
    .setOption('title', 'Updated!')
    .setOption('animation.duration', 500)
    .setPosition(2,2,0,0)
    .build();
sheet.updateChart(chart);

Methods

メソッド戻り値の型概要
addRange(range)EmbeddedChartBuilderこのビルダーで変更するグラフに範囲を追加します。
asAreaChart()EmbeddedAreaChartBuilderグラフの種類を AreaChart に設定し、EmbeddedAreaChartBuilder を返します。
asBarChart()EmbeddedBarChartBuilderグラフの種類を BarChart に設定し、EmbeddedBarChartBuilder を返します。
asColumnChart()EmbeddedColumnChartBuilderグラフの種類を ColumnChart に設定し、EmbeddedColumnChartBuilder を返します。
asComboChart()EmbeddedComboChartBuilderグラフの種類を ComboChart に設定し、EmbeddedComboChartBuilder を返します。
asHistogramChart()EmbeddedHistogramChartBuilderグラフの種類を HistogramChart に設定し、EmbeddedHistogramChartBuilder を返します。
asLineChart()EmbeddedLineChartBuilderグラフの種類を LineChart に設定し、EmbeddedLineChartBuilder を返します。
asPieChart()EmbeddedPieChartBuilderグラフの種類を PieChart に設定し、EmbeddedPieChartBuilder を返します。
asScatterChart()EmbeddedScatterChartBuilderグラフの種類を ScatterChart に設定し、EmbeddedScatterChartBuilder を返します。
asTableChart()EmbeddedTableChartBuilderグラフの種類を TableChart に設定し、EmbeddedTableChartBuilder を返します。
build()EmbeddedChartグラフを作成して、そのグラフに加えられたすべての変更を反映します。
clearRanges()EmbeddedChartBuilderこのビルダーによって変更されたグラフからすべての範囲を削除します。
getChartType()ChartType現在のグラフの種類を返します。
getContainer()ContainerInfoグラフ ContainerInfo を返します。これにより、シート上のグラフが表示される場所をカプセル化します。
getRanges()Range[]現在このグラフにデータを提供している範囲のリストのコピーを返します。
removeRange(range)EmbeddedChartBuilderこのビルダーで変更するグラフから、指定した範囲を削除します。
setChartType(type)EmbeddedChartBuilderグラフの種類を変更します。
setHiddenDimensionStrategy(strategy)EmbeddedChartBuilder非表示の行と列に対して使用する戦略を設定します。
setMergeStrategy(mergeStrategy)EmbeddedChartBuilder複数の範囲が存在する場合に使用するマージ戦略を設定します。
setNumHeaders(headers)EmbeddedChartBuilderヘッダーとして扱う範囲の行数または列数を設定します。
setOption(option, value)EmbeddedChartBuilderこのグラフの詳細オプションを設定します。
setPosition(anchorRowPos, anchorColPos, offsetX, offsetY)EmbeddedChartBuilder位置を設定し、シート上でグラフを表示する位置を変更します。
setTransposeRowsAndColumns(transpose)EmbeddedChartBuilderグラフの行と列を転置するかどうかを設定します。

詳細なドキュメント

addRange(range)

このビルダーで変更するグラフに範囲を追加します。範囲がすでにグラフに追加されている場合は、範囲は追加されません。

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];

var chart = sheet.newChart()
    .setChartType(Charts.ChartType.BAR)
    .addRange(sheet.getRange("A1:B8"))
    .setPosition(5, 5, 0, 0)
    .build();

sheet.insertChart(chart);

パラメータ

名前説明
rangeRange追加する範囲。

リターン

EmbeddedChartBuilder - このビルダー(チェーン用)


asAreaChart()

グラフの種類を AreaChart に設定し、EmbeddedAreaChartBuilder を返します。

リターン

EmbeddedAreaChartBuilder - 面グラフのビルダー


asBarChart()

グラフの種類を BarChart に設定し、EmbeddedBarChartBuilder を返します。

リターン

EmbeddedBarChartBuilder - 棒グラフのビルダー


asColumnChart()

グラフの種類を ColumnChart に設定し、EmbeddedColumnChartBuilder を返します。

リターン

EmbeddedColumnChartBuilder - 縦棒グラフのビルダー


asComboChart()

グラフの種類を ComboChart に設定し、EmbeddedComboChartBuilder を返します。

リターン

EmbeddedComboChartBuilder - 複合グラフのビルダー


asHistogramChart()

グラフの種類を HistogramChart に設定し、EmbeddedHistogramChartBuilder を返します。

リターン

EmbeddedHistogramChartBuilder - ヒストグラム グラフのビルダー


asLineChart()

グラフの種類を LineChart に設定し、EmbeddedLineChartBuilder を返します。

リターン

EmbeddedLineChartBuilder - 折れ線グラフのビルダー


asPieChart()

グラフの種類を PieChart に設定し、EmbeddedPieChartBuilder を返します。

リターン

EmbeddedPieChartBuilder - 円グラフのビルダー


asScatterChart()

グラフの種類を ScatterChart に設定し、EmbeddedScatterChartBuilder を返します。

リターン

EmbeddedScatterChartBuilder - 散布図のビルダー


asTableChart()

グラフの種類を TableChart に設定し、EmbeddedTableChartBuilder を返します。

リターン

EmbeddedTableChartBuilder - 表グラフのビルダー


build()

グラフを作成して、そのグラフに対するすべての変更を反映します。

このメソッドでは、スプレッドシート上にグラフが自動的に描画されることはありません。新しいグラフは sheet.insertChart(chart) で挿入し、既存のグラフは sheet.updateChart(chart) で更新する必要があります。

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];

var range = sheet.getRange("A1:B5");
var chart = sheet.newChart()
    .setChartType(Charts.ChartType.BAR)
    .addRange(range)
    .setPosition(5, 5, 0, 0)
    .build();

sheet.insertChart(chart);

リターン

EmbeddedChart - 作成されたグラフ(スプレッドシートに追加する必要があります)


clearRanges()

このビルダーで変更するグラフからすべての範囲を削除します。

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];

// This code updates the chart to use only the new ranges while preserving the existing
// formatting of the chart.
var chart = sheet.getCharts()[0];
var newChart = chart
    .modify()
    .clearRanges()
    .addRange(sheet.getRange("A1:A5"))
    .addRange(sheet.getRange("B1:B5"))
    .build();
sheet.updateChart(newChart);

リターン

EmbeddedChartBuilder - このビルダー(チェーン用)


getChartType()

現在のグラフの種類を返します。

リターン

ChartType - グラフの種類


getContainer()

グラフの ContainerInfo を返します。これにより、シート上のグラフの表示位置がカプセル化されます。

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];

var chartBuilder = sheet.newChart()
    .setChartType(Charts.ChartType.BAR)
    .addRange(sheet.getRange("A1:B8"))
    .setPosition(5, 5, 0, 0);

// This method returns the exact same data as Chart#getContainerInfo()
var containerInfo = chartBuilder.getContainer();

// Logs the values we used in setPosition()
Logger.log("Anchor Column: %s\r\nAnchor Row %s\r\nOffset X %s\r\nOffset Y %s",
          containerInfo.getAnchorColumn(),
          containerInfo.getAnchorRow(),
          containerInfo.getOffsetX(),
          containerInfo.getOffsetY());

リターン

ContainerInfo - グラフ コンテナの位置を含むオブジェクト。


getRanges()

現在このグラフにデータを提供している範囲のリストのコピーを返します。このリストを変更するには、addRange(range)removeRange(range) を使用します。

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];

var chartBuilder = sheet.newChart()
    .setChartType(Charts.ChartType.BAR)
    .addRange(sheet.getRange("A1:B8"))
    .setPosition(5, 5, 0, 0);

var ranges = chartBuilder.getRanges();

// There's only one range as a data source for this chart,
// so this logs "A1:B8"
for (var i in ranges) {
  var range = ranges[i];
  Logger.log(range.getA1Notation());
}

リターン

Range[] - ビルドされるグラフのデータソースとして機能する範囲の配列


removeRange(range)

このビルダーで変更するグラフから、指定した範囲を削除します。範囲がこのグラフにない場合、エラーはスローされません。

削除する範囲は、addRange(range) で追加した範囲と一致する必要があります。そうでない場合、グラフは変更されません。このメソッドを使用して、範囲から値を部分的に削除することはできません。

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];

var firstRange = sheet.getRange("A1:B5");
var secondRange = sheet.getRange("A6:B8");

var chartBuilder = sheet.newChart()
    .setChartType(Charts.ChartType.BAR)
    .addRange(firstRange)
    // This range will render in a different color
    .addRange(secondRange)
    .setPosition(5, 5, 0, 0);

// Note that you can use either of these two formats, but the range
// MUST match up with a range that was added via addRange(), or it
// will not be removed, and will not throw an exception
chartBuilder.removeRange(firstRange);
chartBuilder.removeRange(sheet.getRange("A6:B8"));

var chart = chartBuilder.build();

sheet.insertChart(chart);

パラメータ

名前説明
rangeRange削除する範囲。

リターン

EmbeddedChartBuilder - このビルダー(チェーン用)


setChartType(type)

グラフの種類を変更します。現時点では、一部の埋め込みグラフの種類はサポートされていません。ChartType をご覧ください。

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];

var range = sheet.getRange("A1:B5");
var chart = sheet.newChart()
    .setChartType(Charts.ChartType.BAR)
    .addRange(range)
    .setPosition(5, 5, 0, 0)
    .build();

sheet.insertChart(chart);

パラメータ

名前説明
typeChartTypeこのグラフの変更先の型。

リターン

EmbeddedChartBuilder - このビルダー(チェーン用)


setHiddenDimensionStrategy(strategy)

非表示の行と列に対して使用する戦略を設定します。デフォルトは IGNORE_ROWS です。

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];

var range = sheet.getRange("A1:B5");
var chart = sheet.newChart()
    .setChartType(Charts.ChartType.BAR)
    .addRange(range)
    .setHiddenDimensionStrategy(Charts.ChartHiddenDimensionStrategy.IGNORE_COLUMNS)
    .setPosition(5, 5, 0, 0)
    .build();

sheet.insertChart(chart);

パラメータ

名前説明
strategyChartHiddenDimensionStrategy非表示の行と列に使用する戦略。

リターン

EmbeddedChartBuilder - このビルダー(チェーン用)


setMergeStrategy(mergeStrategy)

複数の範囲が存在する場合に使用するマージ戦略を設定します。MERGE_ROWS の場合、行がマージされ、MERGE_COLUMNS の場合、列がマージされます。デフォルトは MERGE_COLUMNS です。

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];

var range = sheet.getRange("A1:B10");
var range2 = sheet.getRange("C:C10");
var chart = sheet.newChart()
    .setChartType(Charts.ChartType.BAR)
    .addRange(range)
    .addRange(range2)
    .setMergeStrategy(Charts.ChartMergeStrategy.MERGE_ROWS)
    .setPosition(5, 5, 0, 0)
    .build();

sheet.insertChart(chart);

パラメータ

名前説明
mergeStrategyChartMergeStrategy使用するマージ戦略。

リターン

EmbeddedChartBuilder - このビルダー(チェーン用)


setNumHeaders(headers)

ヘッダーとして扱う範囲の行数または列数を設定します。

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];

var range = sheet.getRange("A1:B5");
var chart = sheet.newChart()
    .setChartType(Charts.ChartType.BAR)
    .addRange(range)
    .setNumHeaders(1)
    .setPosition(5, 5, 0, 0)
    .build();

sheet.insertChart(chart);

パラメータ

名前説明
headersIntegerヘッダーとして扱う行または列の数。負の値を指定すると、ヘッダーが自動検出されます。

リターン

EmbeddedChartBuilder - このビルダー(チェーン用)


setOption(option, value)

このグラフの詳細オプションを設定します。使用可能なオプションの一覧については、グラフ構成オプションをご覧ください。

この方法では、指定したオプションがこのグラフの種類に対して有効かどうかや、値が正しい形式/構造であるかは検証されません。

次の例は、タイトルを変更して凡例を設定する方法を示しています。

builder.setOption('title', 'Earnings projections');
builder.setOption('legend', {position: 'top', textStyle: {color: 'blue', fontSize: 16}});

パラメータ

名前説明
optionStringオプションの名前。
valueObjectオプションの値。

リターン

EmbeddedChartBuilder - チェーン用のこのビルダー。


setPosition(anchorRowPos, anchorColPos, offsetX, offsetY)

位置を設定し、シート上でグラフを表示する位置を変更します。anchorRowPosanchorColPos は 1 インデックスです。

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];

var range = sheet.getRange("A1:B5");
var chart = sheet.newChart()
    .setChartType(Charts.ChartType.BAR)
    .addRange(range)
    .setPosition(5, 5, 0, 0)
    .build();

sheet.insertChart(chart);

パラメータ

名前説明
anchorRowPosIntegerグラフの上部がこの行に固定されています。
anchorColPosIntegerグラフの左側がこの列に固定されています。
offsetXIntegerグラフの右上は、ここで指定したピクセル数でオフセットされます。
offsetYIntegerグラフの左下隅が、このピクセル数でオフセットされます。

リターン

EmbeddedChartBuilder - このビルダー(チェーン用)


setTransposeRowsAndColumns(transpose)

グラフの行と列を転置するかどうかを設定します。true に設定すると、行と列が切り替わります。デフォルトは false です。

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];

var range = sheet.getRange("A1:B5");
var chart = sheet.newChart()
    .setChartType(Charts.ChartType.BAR)
    .addRange(range)
    .setTransposeRowsAndColumns(true)
    .setPosition(5, 5, 0, 0)
    .build();

sheet.insertChart(chart);

パラメータ

名前説明
transposeBooleantrue の場合、グラフの作成に使用される行と列が転置されます。

リターン

EmbeddedChartBuilder - このビルダー(チェーン用)