Class EmbeddedChartBuilder

삽입된차트빌더

EmbeddedChart를 수정하는 데 사용되는 빌더입니다. 차트에 적용된 변경사항은 재구성된 차트에서 Sheet.updateChart(chart)이 호출될 때까지 저장되지 않습니다.

const sheet = SpreadsheetApp.getActiveSheet();
const range = sheet.getRange('A1:B8');
let 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);

메서드

메서드반환 유형간략한 설명
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)

이 빌더가 수정하는 차트에 범위를 추가합니다. 범위가 이미 차트에 추가된 경우에는 범위를 추가하지 않습니다.

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

const 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)를 통해 업데이트해야 합니다.

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

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

sheet.insertChart(chart);

리턴

EmbeddedChart: 생성된 차트로, 아직 스프레드시트에 추가해야 합니다.


clearRanges()

이 빌더가 수정하는 차트에서 모든 범위를 삭제합니다.

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

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

리턴

EmbeddedChartBuilder: 체이닝을 위한 이 빌더


getChartType()

현재 차트 유형을 반환합니다.

리턴

ChartType: 차트 유형


getContainer()

시트에 차트가 표시되는 위치를 캡슐화하는 차트 ContainerInfo를 반환합니다.

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

const 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()
const containerInfo = 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(),
);

리턴

ContainerInfo: 차트 컨테이너의 위치를 포함하는 객체


getRanges()

현재 이 차트에 데이터를 제공하는 범위 목록의 사본을 반환합니다. addRange(range)removeRange(range)를 사용하여 이 목록을 수정합니다.

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

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

const ranges = chartBuilder.getRanges();

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

리턴

Range[]: 빌드할 차트의 데이터 소스로 사용되는 범위 배열


removeRange(range)

이 빌더가 수정하는 차트에서 지정된 범위를 삭제합니다. 범위가 이 차트에 없는 경우 오류가 발생하지 않습니다.

삭제된 범위는 addRange(range)를 통해 추가된 범위와 일치해야 합니다. 그렇지 않으면 차트가 변경되지 않습니다. 이 메서드는 범위에서 값을 부분적으로 삭제하는 데 사용할 수 없습니다.

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

const firstRange = sheet.getRange('A1:B5');
const secondRange = sheet.getRange('A6:B8');

const 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'));

const chart = chartBuilder.build();

sheet.insertChart(chart);

매개변수

이름유형설명
rangeRange삭제할 범위입니다.

리턴

EmbeddedChartBuilder: 체이닝을 위한 이 빌더


setChartType(type)

차트 유형을 변경합니다. 현재 일부 삽입된 차트 유형은 지원되지 않습니다. ChartType를 참조하세요.

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

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

sheet.insertChart(chart);

매개변수

이름유형설명
typeChartType이 차트를 변경할 유형입니다.

리턴

EmbeddedChartBuilder: 체이닝을 위한 이 빌더


setHiddenDimensionStrategy(strategy)

숨겨진 행과 열에 사용할 전략을 설정합니다. 기본값은 IGNORE_ROWS입니다.

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

const range = sheet.getRange('A1:B5');
const 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입니다.

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

const range = sheet.getRange('A1:B10');
const range2 = sheet.getRange('C:C10');
const 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)

헤더로 취급해야 하는 범위의 행 또는 열 수를 설정합니다.

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

const range = sheet.getRange('A1:B5');
const 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)

이 차트의 고급 옵션을 설정합니다. 사용 가능한 옵션 목록을 보려면 차트 구성 옵션을 참고하세요.

이 메서드는 지정된 옵션이 이 차트 유형에 유효한지 또는 값의 형식/구조가 올바른지 확인하지 않습니다.

이 예에서는 제목을 변경하고 범례를 설정하는 방법을 보여줍니다.

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

매개변수

이름유형설명
optionString옵션의 이름입니다.
valueObject옵션의 값입니다.

리턴

EmbeddedChartBuilder: 체이닝을 위한 이 빌더


setPosition(anchorRowPos, anchorColPos, offsetX, offsetY)

위치를 설정하여 시트에 차트가 표시되는 위치를 변경합니다. anchorRowPosanchorColPos는 1부터 시작하는 색인을 사용합니다.

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

const range = sheet.getRange('A1:B5');
const 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입니다.

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

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

sheet.insertChart(chart);

매개변수

이름유형설명
transposeBooleantrue이면 차트를 구성하는 데 사용된 행과 열이 전치됩니다.

리턴

EmbeddedChartBuilder: 체이닝을 위한 이 빌더