Google 試算表 (5) - 欄和列的插入與刪除
除了可以寫入資料到儲存格外,使用 Google 試算表一定會用到的功能就是「插入列或欄」以及「刪除列或欄」,除了可以指定在第一列或第一欄,也可以在中間的區域進行插入或刪除,透過 Google App Script 的輔助,讓試算表的功能更加彈性與方便。
為了待會測試的時候比較明顯,在試算表裡面先放入一些資料,當插入或刪除的時候,這些資料就會位移或消失。
插入欄位 Insert Column
insertColumns(columnIndex, numColumns)
這個方法有兩個參數,第一個 columnIndex 表示要在這個指定的欄位「之前」插入欄位,第二個參數 numColumns 預設為 1,如果不填就是 1,表示插入一欄,下列的程式碼會在 B 前插入一欄,原本的 B 就會跑到 C。
var SpreadSheet = SpreadsheetApp.openByUrl(url); var SheetName = SpreadSheet.getSheetByName(name); SheetName.insertColumns(2);
如果第二個參數填入 2,就會在 B 之前插入兩欄,B 就會跑到 D。
var SpreadSheet = SpreadsheetApp.openByUrl(url); var SheetName = SpreadSheet.getSheetByName(name); SheetName.insertColumns(2,2);
insertColumnBefore(beforePosition)
這個方法等同於 insertColumns 只填入第一個參數,會在指定的欄位「之前」新增一個欄位。
var SpreadSheet = SpreadsheetApp.openByUrl(url); var SheetName = SpreadSheet.getSheetByName(name); SheetName.insertColumnBefore(2);
insertColumnsBefore(beforePosition, howMany)
這個方法等同於 insertColumns 填入兩個參數,注意在 insertColumnsBefore 的 Columns 是有 s 的,表示可以在指定欄位「之前」加入多個欄位。
var SpreadSheet = SpreadsheetApp.openByUrl(url); var SheetName = SpreadSheet.getSheetByName(name); SheetName.insertColumnsBefore(2,2);
insertColumnAfter(afterPosition)
這個方法可以在指定的欄位「之後」加入欄位,因為 insertColumnAfter 的 Column 沒有 s,所以只能插入一欄。
var SpreadSheet = SpreadsheetApp.openByUrl(url); var SheetName = SpreadSheet.getSheetByName(name); SheetName.insertColumnAfter(2);
insertColumnsAfter(afterPosition, howMany)
這個方法和 insertColumnsBefore 相反,是在指定的欄位「之後」加入多個欄位,因為 insertColumnsAfter 的 Columns 有 s,表示可以加入多個欄位。
var SpreadSheet = SpreadsheetApp.openByUrl(url); var SheetName = SpreadSheet.getSheetByName(name); SheetName.insertColumnsAfter(2,2);
刪除欄位 Delete Column
deleteColumn(columnPosition)
刪除一個欄位,當中只有一個參數表示要刪除的欄位次序,欄位刪除後,後方的欄位就會自動遞補到前面。
var SpreadSheet = SpreadsheetApp.openByUrl(url); var SheetName = SpreadSheet.getSheetByName(name); SheetName.deleteColumn(2);
deleteColumns(columnPosition, howMany)
刪除多個欄位,第一個參數是起始的欄位編號,後方則是要刪除的欄位數量,欄位刪除後,後方的欄位就會自動遞補到前面,注意 Columns 有加 s。
var SpreadSheet = SpreadsheetApp.openByUrl(url); var SheetName = SpreadSheet.getSheetByName(name); SheetName.deleteColumns(2,2);
插入列 Insert Row
insertRows(rowIndex, numRows)
這個方法有兩個參數,第一個 rowIndex 表示要在這個指定的列「上方」插入列,第二個參數 numRowss 預設為 1,如果不填就是 1,表示插入一列,下列的程式碼會在第 3 列前插入一列,原本的 3 就會跑到 4。
var SpreadSheet = SpreadsheetApp.openByUrl(url); var SheetName = SpreadSheet.getSheetByName(name); SheetName.insertRows(3);
如果第二個參數填入 2,就會在第 3 列之前插入兩列,第 3 列就會跑到 5。
var SpreadSheet = SpreadsheetApp.openByUrl(url); var SheetName = SpreadSheet.getSheetByName(name); SheetName.insertRows(3,2);
insertRowBefore(beforePosition)
這個方法等同於 insertRows 只填入第一個參數,會在指定的列「上方」新增一列。
var SpreadSheet = SpreadsheetApp.openByUrl(url); var SheetName = SpreadSheet.getSheetByName(name); SheetName.insertRowAfter(3);
insertRowsBefore(beforePosition, howMany)
這個方法等同於 insertRows 填入兩個參數,注意在 insertRowsBefore 的 Rows 是有 s 的,表示可以在指定的列「上方」加入多個列。
var SpreadSheet = SpreadsheetApp.openByUrl(url); var SheetName = SpreadSheet.getSheetByName(name); SheetName.insertRowsBefore(3,2);
insertRowAfter(afterPosition)
這個方法可以在指定的列「下方」加入列,因為 insertRowAfter 的 Row 沒有 s,所以只能插入一列。
var SpreadSheet = SpreadsheetApp.openByUrl(url); var SheetName = SpreadSheet.getSheetByName(name); SheetName.insertRowAfter(2);
insertRowsAfter(beforePosition, howMany)
這個方法和 insertRowsBefore 相反,是在指定的列「下方」加入多個列,因為 insertRowsBefore 的 Rows 有 s,表示可以加入多個列。
var SpreadSheet = SpreadsheetApp.openByUrl(url); var SheetName = SpreadSheet.getSheetByName(name); SheetName.insertRowsAfter(2,2);
刪除列 Delete Row
deleteRow(rowPosition)
刪除一列,當中只有一個參數表示要刪除的列的次序,把指定的列刪除後,下方的列就會自動遞補到上面。
var SpreadSheet = SpreadsheetApp.openByUrl(url); var SheetName = SpreadSheet.getSheetByName(name); SheetName.deleteRow(3);
deleteRows(rowPosition, howMany)
刪除多個列,第一個參數是起始的列的編號,後方則是要刪除的列的數量,把指定的列刪除後,下方的列就會自動遞補到上面,注意 Rows 有加 s。
var SpreadSheet = SpreadsheetApp.openByUrl(url); var SheetName = SpreadSheet.getSheetByName(name); SheetName.deleteRows(3,2);
小結
認識了插入、刪除列與欄之後,下一篇將要透過網頁來執行寫入、插入、刪除...等動作,一起來發揮試算表超強的儲存能力吧!