Google Sheets

寫入資料到指定的 Google Spreadsheet

Spreadsheet ID

想要寫入資料的目標 Google Spreadsheet ID,支援 %FILENAME% 文檔變數,從瀏覽器網址列中可以取得,例如:

api 物件

除了常用的檔案處理同步函式 api.files(), api.read(filename, encoding='utf8'), api.write(filename, text), api.remove(filename) 之外,可以使用同步函式 api.sheetNames() 取得試算表的標題陣列:

// 印出所有試算表的標題
console.log(api.sheetNames())

非同步函式包括 api.addSheet(header, rows, name), api.delSheet(name), api.getRows(name), api.addRows(name, rows), api.delRow(name, rowIndex), api.getCell(name, rowIndex, colIndex), api.setCell(name, rowIndex, colIndex, value), api.loadSheet(name, range):

// 新增一個標題為 “new sheet” 的試算表
let header = ['姓名','電子郵件']
let rows = [
  {'姓名':'Alice','電子郵件':'alice@mail.com'},
  {'姓名':'Bob','電子郵件':'bob@mail.com'}
]     
await api.addSheet(header, rows, 'new sheet')

// 刪除一個標題為 “old sheet” 的試算表
await api.delSheet('old sheet')

// 新增數筆資料到標題為 “new sheet“ 的試算表
let rows2 = [{'姓名':'Candy','電子郵件':'candy@mail.com'}]
await api.addRows('new sheet', rows2)

// 讀取標題為 “new sheet“ 的試算表資料
let rows3 = await api.getRows('new sheet')
console.log(rows3)

// 刪除第三列, 從零算起, 不包含標頭列
await api.delRow('new sheet', 2// row of 'Candy' will be deleted

// 讀取儲存格, 從零算起, 有包含標頭咧
let cell = await api.getCell('new sheet', 2, 0)
console.log(cell) // 'Bob'

// 寫入儲存格, 從零算起, 有包含標頭列
await api.setCell('new sheet', 2, 0, 'Bob Wang')

// 讀取指定名稱的 sheet
let sheet = await api.loadSheet('sheet1')
// 或是以A1表示法指定範圍
sheet = await api.loadSheet('sheet1', 'A1:E5')
// 取得儲存格,(row,col)座標為(0,1),座標為 zero-based
let cell1 = await sheet.cell(0,1)
// 指定儲存格的值
cell1.value = 'Jerry'
// 取得座標為(1,1)的儲存格,row/col(zero-based)
let cell2 = await sheet.cell(1,1)
// 指定儲存格的值
cell2.value = 'New Taipei City'
// 儲存所有在 sheet 的編輯結果
await sheet.save()

Last updated