Class EmbeddedColumnChartBuilder

  • EmbeddedColumnChartBuilder enables programmatic creation and customization of embedded column charts within Google Sheets using Apps Script.

  • It provides methods to define data sources, modify chart types (e.g., area, bar), customize appearance (title, legend, colors), and set advanced options.

  • Charts are built using build() and positioned using setPosition(), and require separate insertion (sheet.insertChart()) or update (sheet.updateChart()) to display.

  • Detailed documentation and code examples for each method are available for specific usage instructions.

  • The builder supports various functionalities like reversing categories, transposing data, using logarithmic scales, and fine-tuning chart elements.

EmbeddedColumnChartBuilder

Builder for column charts. For more details, see the Gviz documentation.

Methods

MethodReturn typeBrief description
addRange(range) EmbeddedChartBuilder Adds a range to the chart this builder modifies.
asAreaChart() EmbeddedAreaChartBuilder Sets the chart type to AreaChart and returns an EmbeddedAreaChartBuilder .
asBarChart() EmbeddedBarChartBuilder Sets the chart type to BarChart and returns an EmbeddedBarChartBuilder .
asColumnChart() EmbeddedColumnChartBuilder Sets the chart type to ColumnChart and returns an EmbeddedColumnChartBuilder .
asComboChart() EmbeddedComboChartBuilder Sets the chart type to ComboChart and returns an EmbeddedComboChartBuilder .
asHistogramChart() EmbeddedHistogramChartBuilder Sets the chart type to HistogramChart and returns an EmbeddedHistogramChartBuilder .
asLineChart() EmbeddedLineChartBuilder Sets the chart type to LineChart and returns an EmbeddedLineChartBuilder .
asPieChart() EmbeddedPieChartBuilder Sets the chart type to PieChart and returns an EmbeddedPieChartBuilder .
asScatterChart() EmbeddedScatterChartBuilder Sets the chart type to ScatterChart and returns an EmbeddedScatterChartBuilder .
asTableChart() EmbeddedTableChartBuilder Sets the chart type to TableChart and returns an EmbeddedTableChartBuilder .
build() EmbeddedChart Builds the chart to reflect all changes made to it.
clearRanges() EmbeddedChartBuilder Removes all ranges from the chart this builder modifies.
getChartType() ChartType Returns the current chart type.
getContainer() ContainerInfo Return the chart ContainerInfo , which encapsulates where the chart appears on the sheet.
getRanges() Range[] Returns a copy of the list of ranges currently providing data for this chart.
removeRange(range) EmbeddedChartBuilder Removes the specified range from the chart this builder modifies.
reverseCategories() EmbeddedColumnChartBuilder Reverses the drawing of series in the domain axis.
setBackgroundColor(cssValue) EmbeddedColumnChartBuilder Sets the background color for the chart.
setChartType(type) EmbeddedChartBuilder Changes the type of chart.
setColors(cssValues) EmbeddedColumnChartBuilder Sets the colors for the lines in the chart.
setHiddenDimensionStrategy(strategy) EmbeddedChartBuilder Sets the strategy to use for hidden rows and columns.
setLegendPosition(position) EmbeddedColumnChartBuilder Sets the position of the legend with respect to the chart.
setLegendTextStyle(textStyle) EmbeddedColumnChartBuilder Sets the text style of the chart legend.
setMergeStrategy(mergeStrategy) EmbeddedChartBuilder Sets the merge strategy to use when more than one range exists.
setNumHeaders(headers) EmbeddedChartBuilder Sets the number of rows or columns of the range that should be treated as headers.
setOption(option, value) EmbeddedChartBuilder Sets advanced options for this chart.
setPosition(anchorRowPos, anchorColPos, offsetX, offsetY) EmbeddedChartBuilder Sets the position, changing where the chart appears on the sheet.
setRange(start, end) EmbeddedColumnChartBuilder Sets the range for the chart.
setStacked() EmbeddedColumnChartBuilder Uses stacked lines, meaning that line and bar values are stacked (accumulated).
setTitle(chartTitle) EmbeddedColumnChartBuilder Sets the title of the chart.
setTitleTextStyle(textStyle) EmbeddedColumnChartBuilder Sets the text style of the chart title.
setTransposeRowsAndColumns(transpose) EmbeddedChartBuilder Sets whether the chart's rows and columns are transposed.
setXAxisTextStyle(textStyle) EmbeddedColumnChartBuilder Sets the horizontal axis text style.
setXAxisTitle(title) EmbeddedColumnChartBuilder Adds a title to the horizontal axis.
setXAxisTitleTextStyle(textStyle) EmbeddedColumnChartBuilder Sets the horizontal axis title text style.
setYAxisTextStyle(textStyle) EmbeddedColumnChartBuilder Sets the vertical axis text style.
setYAxisTitle(title) EmbeddedColumnChartBuilder Adds a title to the vertical axis.
setYAxisTitleTextStyle(textStyle) EmbeddedColumnChartBuilder Sets the vertical axis title text style.
useLogScale() EmbeddedColumnChartBuilder Makes the range axis into a logarithmic scale (requires all values to be positive).

Detailed documentation

addRange(range)

Adds a range to the chart this builder modifies. Does not add the range if it has already been added to the chart.

constss=SpreadsheetApp.getActiveSpreadsheet();
constsheet=ss.getSheets()[0];
constchart=sheet.newChart()
.setChartType(Charts.ChartType.BAR)
.addRange(sheet.getRange('A1:B8'))
.setPosition(5,5,0,0)
.build();
sheet.insertChart(chart);

Parameters

NameTypeDescription
rangeRange The range to add.

Return

EmbeddedChartBuilder — This builder, for chaining.


asAreaChart()

Sets the chart type to AreaChart and returns an EmbeddedAreaChartBuilder .

Return

EmbeddedAreaChartBuilder — A builder for an area chart.


asBarChart()

Sets the chart type to BarChart and returns an EmbeddedBarChartBuilder .

Return

EmbeddedBarChartBuilder — A builder for a bar chart.


asColumnChart()

Sets the chart type to ColumnChart and returns an EmbeddedColumnChartBuilder .

Return

EmbeddedColumnChartBuilder — A builder for a column chart.


asComboChart()

Sets the chart type to ComboChart and returns an EmbeddedComboChartBuilder .

Return

EmbeddedComboChartBuilder — A builder for a combo chart.


asHistogramChart()

Sets the chart type to HistogramChart and returns an EmbeddedHistogramChartBuilder .

Return

EmbeddedHistogramChartBuilder — A builder for a histogram chart.


asLineChart()

Sets the chart type to LineChart and returns an EmbeddedLineChartBuilder .

Return

EmbeddedLineChartBuilder — A builder for a line chart.


asPieChart()

Sets the chart type to PieChart and returns an EmbeddedPieChartBuilder .

Return

EmbeddedPieChartBuilder — A builder for a pie chart.


asScatterChart()

Sets the chart type to ScatterChart and returns an EmbeddedScatterChartBuilder .

Return

EmbeddedScatterChartBuilder — A builder for a scatter chart.


asTableChart()

Sets the chart type to TableChart and returns an EmbeddedTableChartBuilder .

Return

EmbeddedTableChartBuilder — A builder for a table chart.


build()

Builds the chart to reflect all changes made to it.

This method does not automatically draw the chart on top of the spreadsheet. A new chart must be inserted via sheet.insertChart(chart), and an existing chart should be updated via sheet.updateChart(chart).

constss=SpreadsheetApp.getActiveSpreadsheet();
constsheet=ss.getSheets()[0];
constrange=sheet.getRange('A1:B5');
constchart=sheet.newChart()
.setChartType(Charts.ChartType.BAR)
.addRange(range)
.setPosition(5,5,0,0)
.build();
sheet.insertChart(chart);

Return

EmbeddedChart — The created chart, which must still be added to the spreadsheet.


clearRanges()

Removes all ranges from the chart this builder modifies.

constss=SpreadsheetApp.getActiveSpreadsheet();
constsheet=ss.getSheets()[0];
// This code updates the chart to use only the new ranges while preserving the
// existing formatting of the chart.
constchart=sheet.getCharts()[0];
constnewChart=chart.modify()
.clearRanges()
.addRange(sheet.getRange('A1:A5'))
.addRange(sheet.getRange('B1:B5'))
.build();
sheet.updateChart(newChart);

Return

EmbeddedChartBuilder — This builder, for chaining.


getChartType()

Returns the current chart type.

Return

ChartType — The chart type.


getContainer()

Return the chart ContainerInfo , which encapsulates where the chart appears on the sheet.

constss=SpreadsheetApp.getActiveSpreadsheet();
constsheet=ss.getSheets()[0];
constchartBuilder=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()
constcontainerInfo=chartBuilder.getContainer();
// Logs the values 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(),
);

Return

ContainerInfo — An object containing the chart container's position.


getRanges()

Returns a copy of the list of ranges currently providing data for this chart. Use addRange(range) and removeRange(range) to modify this list.

constss=SpreadsheetApp.getActiveSpreadsheet();
constsheet=ss.getSheets()[0];
constchartBuilder=sheet.newChart()
.setChartType(Charts.ChartType.BAR)
.addRange(sheet.getRange('A1:B8'))
.setPosition(5,5,0,0);
constranges=chartBuilder.getRanges();
// There's only one range as a data source for this chart,
// so this logs "A1:B8"
for(constiinranges){
constrange=ranges[i];
Logger.log(range.getA1Notation());
}

Return

Range[] — An array of ranges that serve as the chart to be built's data source.


removeRange(range)

Removes the specified range from the chart this builder modifies. Does not throw an error if the range is not in this chart.

The range removed must match up with a range added via addRange(range) ; otherwise no change is made to the chart. This method cannot be used to partially remove values from a range.

constss=SpreadsheetApp.getActiveSpreadsheet();
constsheet=ss.getSheets()[0];
constfirstRange=sheet.getRange('A1:B5');
constsecondRange=sheet.getRange('A6:B8');
constchartBuilder=sheet.newChart()
.setChartType(Charts.ChartType.BAR)
.addRange(firstRange)
// This range renders 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
// is not removed, and does not throw an exception
chartBuilder.removeRange(firstRange);
chartBuilder.removeRange(sheet.getRange('A6:B8'));
constchart=chartBuilder.build();
sheet.insertChart(chart);

Parameters

NameTypeDescription
rangeRange The range to remove.

Return

EmbeddedChartBuilder — This builder, for chaining.


reverseCategories()

Reverses the drawing of series in the domain axis. For vertical-range charts (such as line, area or column charts), this means the horizontal axis is drawn from right to left. For horizontal-range charts (such as bar charts), this means the vertical axis is drawn from top to bottom. For pie charts, this means the slices are drawn counterclockwise.

// Creates a pie chart builder and sets drawing of the slices in a
// counter-clockwise manner.
constbuilder=Charts.newPieChart();
builder.reverseCategories();

Return

EmbeddedColumnChartBuilder — This builder, useful for chaining.


setBackgroundColor(cssValue)

Sets the background color for the chart.

// Creates a line chart builder and sets the background color to gray
constbuilder=Charts.newLineChart();
builder.setBackgroundColor('gray');

Parameters

NameTypeDescription
cssValueStringThe CSS value for the color (such as "blue" or "#00f").

Return

EmbeddedColumnChartBuilder — This builder, useful for chaining.


setChartType(type)

Changes the type of chart. Not all embedded chart types are currently supported. See ChartType .

constss=SpreadsheetApp.getActiveSpreadsheet();
constsheet=ss.getSheets()[0];
constrange=sheet.getRange('A1:B5');
constchart=sheet.newChart()
.setChartType(Charts.ChartType.BAR)
.addRange(range)
.setPosition(5,5,0,0)
.build();
sheet.insertChart(chart);

Parameters

NameTypeDescription
typeChartType The type to change this chart into.

Return

EmbeddedChartBuilder — This builder, for chaining.


setColors(cssValues)

Sets the colors for the lines in the chart.

// Creates a line chart builder and sets the first two lines to be drawn in
// green and red, respectively.
constbuilder=Charts.newLineChart();
builder.setColors(['green','red']);

Parameters

NameTypeDescription
cssValuesString[]An array of color CSS values, such as ["red", "#acf"]. The nth element in the array represents the color of the nth line in the chart.

Return

EmbeddedColumnChartBuilder — This builder, useful for chaining.


setHiddenDimensionStrategy(strategy)

Sets the strategy to use for hidden rows and columns. Defaults to IGNORE_ROWS .

constss=SpreadsheetApp.getActiveSpreadsheet();
constsheet=ss.getSheets()[0];
constrange=sheet.getRange('A1:B5');
constchart=sheet.newChart()
.setChartType(Charts.ChartType.BAR)
.addRange(range)
.setHiddenDimensionStrategy(
Charts.ChartHiddenDimensionStrategy.IGNORE_COLUMNS,
)
.setPosition(5,5,0,0)
.build();
sheet.insertChart(chart);

Parameters

NameTypeDescription
strategyChartHiddenDimensionStrategy The strategy to use for hidden rows and columns.

Return

EmbeddedChartBuilder — This builder, for chaining.


setLegendPosition(position)

Sets the position of the legend with respect to the chart. By default, there is no legend.

// Creates a line chart builder and sets the legend position to right.
constbuilder=Charts.newLineChart();
builder.setLegendPosition(Charts.Position.RIGHT);

Parameters

NameTypeDescription
positionPosition The position of the legend.

Return

EmbeddedColumnChartBuilder — This builder, useful for chaining.


setLegendTextStyle(textStyle)

Sets the text style of the chart legend.

// Creates a line chart builder and sets it up for a blue, 26-point legend.
consttextStyleBuilder=
Charts.newTextStyle().setColor('#0000FF').setFontSize(26);
conststyle=textStyleBuilder.build();
constbuilder=Charts.newLineChart();
builder.setLegendTextStyle(style);

Parameters

NameTypeDescription
textStyleTextStyle The text style to use for the chart legend.

Return

EmbeddedColumnChartBuilder — This builder, useful for chaining.


setMergeStrategy(mergeStrategy)

Sets the merge strategy to use when more than one range exists. If MERGE_ROWS , rows are merged; if MERGE_COLUMNS , columns are merged. Defaults to MERGE_COLUMNS .

constss=SpreadsheetApp.getActiveSpreadsheet();
constsheet=ss.getSheets()[0];
constrange=sheet.getRange('A1:B10');
constrange2=sheet.getRange('C:C10');
constchart=sheet.newChart()
.setChartType(Charts.ChartType.BAR)
.addRange(range)
.addRange(range2)
.setMergeStrategy(Charts.ChartMergeStrategy.MERGE_ROWS)
.setPosition(5,5,0,0)
.build();
sheet.insertChart(chart);

Parameters

NameTypeDescription
mergeStrategyChartMergeStrategy The merge strategy to use.

Return

EmbeddedChartBuilder — This builder, for chaining.


setNumHeaders(headers)

Sets the number of rows or columns of the range that should be treated as headers.

constss=SpreadsheetApp.getActiveSpreadsheet();
constsheet=ss.getSheets()[0];
constrange=sheet.getRange('A1:B5');
constchart=sheet.newChart()
.setChartType(Charts.ChartType.BAR)
.addRange(range)
.setNumHeaders(1)
.setPosition(5,5,0,0)
.build();
sheet.insertChart(chart);

Parameters

NameTypeDescription
headersIntegerThe number of rows or columns to treat as headers. Negative values cause headers to be auto-detected.

Return

EmbeddedChartBuilder — This builder, for chaining.


setOption(option, value)

Sets advanced options for this chart. To view a list of the available options, see Chart configuration options.

This method doesn't validate the option you specify is valid for this chart type nor if the value is of the correct format/structure.

This example shows how to change the title and set a legend.

constspreadsheet=SpreadsheetApp.getActiveSpreadsheet();
constsheet=spreadsheet.getSheets()[0];
constchart=sheet.newChart()
.setOption('title','Earnings projections')
.setOption('legend',{
position:'top',
textStyle:{color:'blue',fontSize:16},
}).build();

Parameters

NameTypeDescription
optionStringThe name of the option.
valueObjectThe value of the option.

Return

EmbeddedChartBuilder — This builder, for chaining.


setPosition(anchorRowPos, anchorColPos, offsetX, offsetY)

Sets the position, changing where the chart appears on the sheet. anchorRowPos and anchorColPos are 1-indexed.

constss=SpreadsheetApp.getActiveSpreadsheet();
constsheet=ss.getSheets()[0];
constrange=sheet.getRange('A1:B5');
constchart=sheet.newChart()
.setChartType(Charts.ChartType.BAR)
.addRange(range)
.setPosition(5,5,0,0)
.build();
sheet.insertChart(chart);

Parameters

NameTypeDescription
anchorRowPosIntegerThe chart's top side is anchored in this row.
anchorColPosIntegerThe chart's left side is anchored in this column.
offsetXIntegerThe chart's upper right-hand corner is offset by this many pixels.
offsetYIntegerThe chart's lower left-hand corner is offset by this many pixels.

Return

EmbeddedChartBuilder — This builder, for chaining.


setRange(start, end)

Sets the range for the chart.

If any data points fall outside the range, the range is expanded to include those data points.

Parameters

NameTypeDescription
startNumberThe value for the lowest grid line of the range axis.
endNumberThe value for the highest grid line of the range axis.

Return

EmbeddedColumnChartBuilder — This builder, useful for chaining.


setStacked()

Uses stacked lines, meaning that line and bar values are stacked (accumulated). By default, there is no stacking.

Return

EmbeddedColumnChartBuilder — This builder, useful for chaining.


setTitle(chartTitle)

Sets the title of the chart. The title is displayed centered above the chart.

// Creates a line chart builder and title to 'My Line Chart'.
constbuilder=Charts.newLineChart();
builder.setTitle('My Line Chart');

Parameters

NameTypeDescription
chartTitleStringthe chart title.

Return

EmbeddedColumnChartBuilder — This builder, useful for chaining.


setTitleTextStyle(textStyle)

Sets the text style of the chart title.

// Creates a line chart builder and sets it up for a blue, 26-point title.
consttextStyleBuilder=
Charts.newTextStyle().setColor('#0000FF').setFontSize(26);
conststyle=textStyleBuilder.build();
constbuilder=Charts.newLineChart();
builder.setTitleTextStyle(style);

Parameters

NameTypeDescription
textStyleTextStyle The text style to use for the chart title. You can create a TextStyleBuilder object by calling Charts.newTextStyle() .

Return

EmbeddedColumnChartBuilder — This builder, useful for chaining.


setTransposeRowsAndColumns(transpose)

Sets whether the chart's rows and columns are transposed. If set to true, the rows and columns are switched. Defaults to false.

constss=SpreadsheetApp.getActiveSpreadsheet();
constsheet=ss.getSheets()[0];
constrange=sheet.getRange('A1:B5');
constchart=sheet.newChart()
.setChartType(Charts.ChartType.BAR)
.addRange(range)
.setTransposeRowsAndColumns(true)
.setPosition(5,5,0,0)
.build();
sheet.insertChart(chart);

Parameters

NameTypeDescription
transposeBooleanIf true, the rows and columns used to construct the chart are transposed.

Return

EmbeddedChartBuilder — This builder, for chaining.


setXAxisTextStyle(textStyle)

Sets the horizontal axis text style.

// Creates a line chart builder and sets the X-axis text style to blue, 18-point
// font.
consttextStyle=
Charts.newTextStyle().setColor('blue').setFontSize(18).build();
constbuilder=Charts.newLineChart();
builder.setXAxisTextStyle(textStyle);

Parameters

NameTypeDescription
textStyleTextStyle The text style to use for the horizontal axis title. You can create a TextStyleBuilder object by calling Charts.newTextStyle() .

Return

EmbeddedColumnChartBuilder — This builder, useful for chaining.


setXAxisTitle(title)

Adds a title to the horizontal axis. The title is centered and appears below the axis value labels.

// Creates a line chart builder and sets the X-axis title.
constbuilder=Charts.newLineChart();
builder.setTitle('X-axis Title');

Parameters

NameTypeDescription
titleStringThe title for the X-axis.

Return

EmbeddedColumnChartBuilder — This builder, useful for chaining.


setXAxisTitleTextStyle(textStyle)

Sets the horizontal axis title text style.

// Creates a line chart builder and sets the X-axis title text style to blue,
// 18-point font.
consttextStyle=
Charts.newTextStyle().setColor('blue').setFontSize(18).build();
constbuilder=Charts.newLineChart();
builder.setXAxisTitleTextStyle(textStyle);

Parameters

NameTypeDescription
textStyleTextStyle The text style to use for the horizontal axis title. You can create a TextStyleBuilder object by calling Charts.newTextStyle() .

Return

EmbeddedColumnChartBuilder — This builder, useful for chaining.


setYAxisTextStyle(textStyle)

Sets the vertical axis text style.

// Creates a line chart builder and sets the Y-axis text style to blue, 18-point
// font.
consttextStyle=
Charts.newTextStyle().setColor('blue').setFontSize(18).build();
constbuilder=Charts.newLineChart();
builder.setYAxisTextStyle(textStyle);

Parameters

NameTypeDescription
textStyleTextStyle The text style to use for the horizontal axis title. You can create a TextStyleBuilder object by calling Charts.newTextStyle() .

Return

EmbeddedColumnChartBuilder — This builder, useful for chaining.


setYAxisTitle(title)

Adds a title to the vertical axis. The title is centered and appears to the left of the value labels.

// Creates a line chart builder and sets the Y-axis title.
constbuilder=Charts.newLineChart();
builder.setYAxisTitle('Y-axis Title');

Parameters

NameTypeDescription
titleStringThe title for the Y-axis.

Return

EmbeddedColumnChartBuilder — This builder, useful for chaining.


setYAxisTitleTextStyle(textStyle)

Sets the vertical axis title text style.

// Creates a line chart builder and sets the Y-axis title text style to blue,
// 18-point font.
consttextStyle=
Charts.newTextStyle().setColor('blue').setFontSize(18).build();
constbuilder=Charts.newLineChart();
builder.setYAxisTitleTextStyle(textStyle);

Parameters

NameTypeDescription
textStyleTextStyle The text style to use for the horizontal axis title. You can create a TextStyleBuilder object by calling Charts.newTextStyle() .

Return

EmbeddedColumnChartBuilder — This builder, useful for chaining.


useLogScale()

Makes the range axis into a logarithmic scale (requires all values to be positive). The range axis are the vertical axis for vertical charts (such as line, area, or column) and the horizontal axis for horizontal charts (such as bar).

Return

EmbeddedColumnChartBuilder — This builder, useful for chaining.

Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2025年08月12日 UTC.