在Google雲端硬碟中Google試算表中,點選工具、指令碼編輯器。
輸入以下繪圖程式碼,執行即可。
繪圖程式碼。
function buildChart()
{
var chart = null;
var insertChart = true;
var title, embededChartBuilder;
var allchart = sheet.getCharts();
var titlename;
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('201701台指未平倉量');
/* 圖表標題名稱 */
titlename = '台指 201701 月走勢圖與成本';
/* 確認是否有相同 圖表標題名稱 的圖存在 */
for (var j = 0; j < sheet.getCharts().length; j++)
{
title = allchart[j].getOptions().get("title") + "";
if (title.indexOf(titlename) > -1) {
chart = allchart[j];
insertChart = false;
break;
}
}
/* 存在圖表,則移除上一次圖表的屬性,不存在則建立新的圖表物件 */
if (insertChart)
{
/* 取得新建立的圖表Handle */
embededChartBuilder = sheet.newChart().asLineChart();
}
else
{
/* 取得修改圖表的Handle */
embededChartBuilder = chart.modify().asLineChart();
var ranges = chart.getRanges();
ranges.forEach(function(range) {
/* 移除圖表屬性設定 */
embededChartBuilder.removeRange(range);
});
}
/* 圖表屬性設定 */
/* 指定圖表類行為折線圖 */
chart = embededChartBuilder/*.setChartType(Charts.ChartType.LINE)*/
/* 設定X軸資料來源 */
.addRange(sheet.getRange("A:A"))
/* 設定Y軸資料來源 */
.addRange(sheet.getRange("E:E"))
.addRange(sheet.getRange("Z:Z"))
/* 設定圖表標題名稱 */
.setTitle(titlename)
/* 設定主座標軸名稱 */
.setOption('vAxis.title', "收盤價")
/* 設定X軸標軸名稱 */
.setOption('hAxis.title', "日期")
/* 設定圖例位置 */
.setOption('legend', 'top')
/* 設定繪圖區範圍 */
.setOption('chartArea', {left:'10%',top:'15%',width:'85%',height:'65%'})
/* 設定圖表長寬 */
.setOption('width', 605)
.setOption('height',420)
/*設定圖表繪製位置 */
.setPosition(2, 2, 0, 0)
/* 執行上面所有設定 */
.build();
/* 建立或更新圖表 */
if (insertChart) {
sheet.insertChart(chart);
} else {
sheet.updateChart(chart);
}
}
參考資料:
- Google Charts --- Line Chart
- Google Spreadsheet Graph with Dynamic Data
- Google Chat API Combo Chart サンプル
- First & Top of Page Bid Gap Script

