Class EmbeddedChart

EmbeddedChart

代表已嵌入試算表的圖表。

以下範例說明如何修改現有圖表:

var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getRange("A2: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);

以下範例說明如何建立新圖表:

function newChart(range, sheet) {
  var sheet = SpreadsheetApp.getActiveSheet();
  var chartBuilder = sheet.newChart();
  chartBuilder.addRange(range)
      .setChartType(Charts.ChartType.LINE)
      .setOption('title', 'My Line Chart!');
  sheet.insertChart(chartBuilder.build());
}

方法

方法傳回類型簡短說明
asDataSourceChart()DataSourceChart如果圖表是資料來源圖表,則會轉換為資料來源圖表執行個體;null 反之。
getAs(contentType)Blob以 blob 的形式傳回這個物件中的資料,做為轉換成指定內容類型的 blob。
getBlob()Blob以 blob 的形式傳回這個物件中的資料。
getChartId()Integer傳回在包含 圖表,如果圖表不在試算表中,則傳回 null
getContainerInfo()ContainerInfo傳回圖表在工作表中的位置相關資訊。
getHiddenDimensionStrategy()ChartHiddenDimensionStrategy傳回處理隱藏列和欄所使用的策略。
getMergeStrategy()ChartMergeStrategy如有多個範圍,則傳回使用的合併策略。
getNumHeaders()Integer傳回設為標頭的列數或欄數。
getOptions()ChartOptions傳回此圖表的選項,例如高度、顏色和軸。
getRanges()Range[]傳回此圖表做為資料來源使用的範圍。
getTransposeRowsAndColumns()Boolean如果設為 true,系統會切換用來填入圖表的資料列和資料欄。
modify()EmbeddedChartBuilder傳回可用來修改此圖表的 EmbeddedChartBuilder

內容詳盡的說明文件

asDataSourceChart()

如果圖表是資料來源圖表,則會轉換為資料來源圖表執行個體;null 反之。

回攻員

DataSourceChart:資料來源圖表。


getAs(contentType)

以 blob 的形式傳回這個物件中的資料,做為轉換成指定內容類型的 blob。這個 方法會在檔案名稱中加入適當的副檔名,例如「myfile.pdf」。不過 假設檔案名稱最後一個句點 (如果有) 之後的部分為現有文件 所有應替換的副檔名。因此,「ShoppingList.12.25.2014」變成 「ShoppingList.12.25.pdf」。

如要查看轉換的每日配額,請參閱 Google 的配額 服務。新建立的 Google Workspace 網域可能會暫時受到更嚴格的限制

參數

名稱類型說明
contentTypeString要轉換的 MIME 類型。大多數 blob 的 'application/pdf' 是 就是唯一有效的選項如為 BMP、GIF、JPEG 或 PNG 格式的圖片,也應採用 'image/bmp''image/gif''image/jpeg''image/png' 格式 有效。如果是 Google 文件,'text/markdown' 也是有效的格式。

回攻員

Blob - 做為 blob 的資料。


getBlob()

以 blob 的形式傳回這個物件中的資料。

回攻員

Blob - 做為 blob 的資料。


getChartId()

傳回在包含 圖表,如果圖表不在試算表中,則傳回 null

回攻員

Integer:穩定的圖表 ID。


getContainerInfo()

傳回圖表在工作表中的位置相關資訊。

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();

var containerInfo = chart.getContainerInfo();

// 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:包含圖表容器位置的物件


getHiddenDimensionStrategy()

傳回處理隱藏列和欄所使用的策略。預設值為 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()

// Logs the strategy to use for hidden rows and columns which is
// Charts.ChartHiddenDimensionStrategy.IGNORE_COLUMNS in this case.
Logger.log(chart.getHiddenDimensionStrategy());

回攻員

ChartHiddenDimensionStrategy:用於隱藏列和欄的策略。


getMergeStrategy()

如有多個範圍,則傳回使用的合併策略。如果是 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("C1:C10");
var chart = sheet.newChart()
    .setChartType(Charts.ChartType.BAR)
    .addRange(range)
    .addRange(range2)
    .setMergeStrategy(Charts.ChartMergeStrategy.MERGE_ROWS)
    .setPosition(5, 5, 0, 0)
    .build()

// Logs whether rows of multiple ranges are merged, which is MERGE_ROWS in this case.
Logger.log(chart.getMergeStrategy());

回攻員

ChartMergeStrategy - 如果資料列由多個項目合併,則為 MERGE_ROWS 個 範圍;如果資料欄已合併,則為 MERGE_COLUMNS 並匯總


getNumHeaders()

傳回設為標頭的列數或欄數。

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()

// Logs the number of rows or columns to use as headers, which is 1 in this case.
Logger.log(chart.getHeaders());

回攻員

Integer:視為標題的列數或欄數。負值表示標題 會自動偵測。


getOptions()

傳回此圖表的選項,例如高度、顏色和軸。

傳回的選項無法變更。

回攻員

ChartOptions:這張圖表的選項,例如高度、顏色和軸。


getRanges()

傳回此圖表做為資料來源使用的範圍。

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();

var ranges = chart.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[]:範圍陣列,做為這張圖表的資料來源


getTransposeRowsAndColumns()

如果設為 true,系統會切換用來填入圖表的資料列和資料欄。預設為 false

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

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

// Logs whether rows and columns should be transposed, which is true in this case.
Logger.log(chart.getTransposeRowsAndColumns());

回攻員

Booleantrue (表示用於建構圖表的列與欄經過轉置)。


modify()

傳回可用來修改此圖表的 EmbeddedChartBuilder。叫用 sheet.updateChart(chart) 即可儲存任何變更。

var sheet = SpreadsheetApp.getActiveSheet();
var chart = sheet.getCharts()[0];
chart = chart.modify()
    .setOption('width', 800)
    .setOption('height', 640)
    .setPosition(5, 5, 0, 0)
    .build();
sheet.updateChart(chart);

回攻員

EmbeddedChartBuilder:建立嵌入式圖表的建構工具