iT邦幫忙

2021 iThome 鐵人賽

DAY 18
0
IT管理

「Google Apps Script」 學習筆記系列 第 18

【Day 18】Google Apps Script - API 篇 - Spreadsheet Service - 電子試算表服務範例-新增標題

來練習幫 Google Sheets(電子試算表)增加一點內容吧。


今日要點:
》Spreadsheet Service 電子試算表服務範例
》新增一列標題列
》設定樣式


Document Service 內容新增

前一天我們簡單介紹了 Spreadsheet Service 的手冊與 Google 電子試算表的畫面對應,今天繼續來一些 API 程式使用範例。來練習幫 Google Sheets(電子試算表)增加一點內容吧。

今天先來介紹與練習一下新增一列標題列,設定標題列欄位的樣式,並且把標題列給凍結起來,標題的名稱就對應我們前面說明的鐵人賽 Demo 表裡的欄位。

我們試著把程式碼弄的很簡單,一樣先把一些參數先寫死比較好閱讀。

程式碼與執行結果對照如下圖:

程式碼

我們程式大概分幾個部份

  • 建立一個新的 Sheet 檔案
  • 設定第一列標題欄位名稱
  • 設定第一列欄位的樣式
     - 凍結第一列(row)
     - 設定字體大小、字體顏色、欄位背景顏色
     - 設定欄位寛度

程式碼如下:

var gSheet; //工作表

var col_A = 1; //"服務名稱"
var col_B = 2; //"函式名稱"
var col_C = 3; //"函式名稱(中文)"
var col_D = 4; //"函式說明"
var col_E = 5; //"Request Url Params"
var col_F = 6; //"Response Body"
var col_G = 7; //"Sample"


//主要入口
function doGet18(e){  

  //如果沒有要用原有的 sheets 檔案, 自動建立一個新檔案
  createSheets(); 
  
  //設定第一列標題欄位
  setTargetWorkbookColTitle();

  //設定第一列欄位的樣式
  setColTitleStyle()
}

建立初始的檔案


//建立初始的檔案
function createSheets() {    
  var ss = SpreadsheetApp.create('鐵人賽-API-文件-Demo-程式自動產生-'+ getTimestemp() , 200, 17);
  gSheet = ss.getSheets()[0];
}

設定第一列標題欄位名稱


function setTargetWorkbookColTitle(){
      setCellValue(1, col_A, "服務名稱")
      setCellValue(1, col_B, "函式名稱")
      setCellValue(1, col_C, "函式名稱(中文)")
      setCellValue(1, col_D, "函式說明")
      setCellValue(1, col_E, "Request Url Params")
      setCellValue(1, col_F, "Response Body")
      setCellValue(1, col_G, "Sample")
}

設定第一列欄位的樣式

function setColTitleStyle() {    
  //凍結第一列(row)
  gSheet.setFrozenRows(1);
  
  //設定字體大小、字體顏色、欄位背景顏色 
  gSheet.getRange('1:1').setFontSize(12);
  gSheet.getRange('1:1').setFontColor('white');   
  gSheet.getRange('1:1').setBackground('#708090');

  //設定欄位寛度
  gSheet.setColumnWidths(3, 2, 200);  //從第3欄開始後2欄, 設為寛度200
  gSheet.setColumnWidths(5, 3, 250);  //從第5欄開始後3欄, 設為寛度250
}

設定欄位值

function setCellValue(row, column, content){

  var cell = gSheet.getRange(row, column, 1);//指定目的儲存格範圍 
  cell.setValue(content);

  //另一種定位欄位的方式
  //sheet.getRange('A1').setValue('編號');

 }

以上就是建立 Google Sheets(電子試算表),新增一列標題列並設定樣式的範例。

今天就先這樣囉。

參考

程式附錄

function getTimestemp(){
  var time = new Date().toISOString();
  var tzoffset = (new Date()).getTimezoneOffset() * 60000; 
  var localISOTime = (new Date(Date.now() - tzoffset)).toISOString().slice(0, 19);   
  var timestemp = localISOTime.replace(/-/g, "").replace(/:/g, "").replace("T", "-"); //20210711-151304
  return timestemp;
}

 


上一篇
【Day 17】Google Apps Script - API 篇 - Spreadsheet Service - 電子試算表服務介紹
下一篇
【Day 19】Google Apps Script - API 篇 - Spreadsheet Service - 電子試算表服務範例-新增內容
系列文
「Google Apps Script」 學習筆記30

尚未有邦友留言

立即登入留言