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。
getBlob()Blob傳回這個物件中的資料,以 blob 形式傳回。
getChartId()Integer針對含有圖表的試算表,傳回圖表的固定 ID;如果圖表不在試算表中,則會傳回 null
getContainerInfo()ContainerInfo傳回圖表在工作表中的位置資訊。
getHiddenDimensionStrategy()ChartHiddenDimensionStrategy傳回用來處理隱藏列和欄的策略。
getMergeStrategy()ChartMergeStrategy傳回包含多個範圍的合併策略。
getNumHeaders()Integer傳回視為標頭的標題範圍或欄數。
getOptions()ChartOptions傳回此圖表的選項,例如高度、顏色和軸。
getRanges()Range[]傳回此圖表做為資料來源的範圍。
getTransposeRowsAndColumns()Boolean如為 true,則系統會填入用來填入圖表的列和欄。
modify()EmbeddedChartBuilder傳回可用於修改這張圖表的 EmbeddedChartBuilder

內容詳盡的說明文件

asDataSourceChart()

如果圖表是資料來源圖表,則投放到資料來源圖表執行個體,或設為 null

Return 鍵

DataSourceChart — 資料來源圖表。


getAs(contentType)

傳回此物件中的資料,以轉換為指定內容類型的 blob。這個方法會在檔案名稱中加上適當的副檔名,例如「quofile;myfile.pdf"」。但其假設,最後一個月後面的檔案名稱部分 (如果有) 是必須取代的現有副檔名。因此「quoList;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' 中任何一個都是有效的。

Return 鍵

Blob — 將資料以 blob 形式呈現。


getBlob()

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

Return 鍵

Blob — 將資料以 blob 形式呈現。


getChartId()

針對含有圖表的試算表,傳回圖表的固定 ID;如果圖表不在試算表中,則會傳回 null

Return 鍵

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

Return 鍵

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

Return 鍵

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

Return 鍵

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

Return 鍵

Integer — 視為標頭的列數或欄數。負值則代表系統會自動偵測標頭。


getOptions()

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

傳回的選項無法變更。

Return 鍵

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

Return 鍵

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

Return 鍵

Boolean - true:如果用於建構圖表的列和欄會經過轉錄,


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

Return 鍵

EmbeddedChartBuilder:建立內嵌圖表的建構工具