在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