透過Google sheets(試算表)寄信
是將試算表當作資料來源
結合執行 Google Apps Script的功能
經過測試,一般的帳號似乎是無法使用
但是用G-Suite的帳號就可以使用
→後來發現是我個人帳號的問題,改用其他一般帳號就正常
按照範例就可以執行
可以依照自己的需求來修改
我修改了以下程式碼:
第7行–選取的列數
第9行–儲存格的範圍,對應試算表是A2到C2
需要留意的是 numRow是指從startRow開始取幾列
getRange(row, column, numRows, numColumns)的用法
numRows → The number of rows to return.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
/** * Sends emails with data from the current spreadsheet. */ function sendEmails() { var sheet = SpreadsheetApp.getActiveSheet(); var startRow = 2; // First row of data to process var numRows = 2; // Number of rows to process // Fetch the range of cells A2:B3 var dataRange = sheet.getRange(startRow, 1, numRows, 3); // Fetch values for each row in the Range. var data = dataRange.getValues(); for (var i in data) { var row = data[i]; var emailAddress = row[0]; // First column var message = row[1]; // Second column var subject = row[2];//mail subject MailApp.sendEmail(emailAddress, subject, message); } } |
測試結果是OK的,收得到信
整理一下使用到的程式碼
javascipt是物件導向程式設計語言,建立物件之前必須先定義物件的規格形式,稱為『類別 (class)』,也就是先定義好這個物件長什麼樣子以及要做哪些事情。定義類別的樣式,稱為 『屬性 (Properties)』,要做的事或提供的方法,稱為『方法 (Methods)』。
SpreadsheetApp.getActiveSheet()
Access and create Google Sheets files.
getActiveSheet()-Methods
Gets the active sheet in a spreadsheet.
備註:相對於excel,sheet就是工作表、spreadsheet是工作簿
getRange(row, column, numRows, numColumns)
Sheet-Class 的Methods
Returns the range with the top left cell at the given coordinates with the given number of rows and columns.
getRange(row, column, numRows, numColumns)
row | Integer | The starting row index of the range; row indexing starts with 1 |
column | Integer | The starting column index of the range; column indexing starts with 1 |
numRows | Integer | The number of rows to return |
numColumns | Integer | The number of columns to return |
getValues()
Sheet-Class 的Methods
Returns the rectangular grid of values for this range. Returns a two-dimensional array of values, indexed by row, then by column.
備註:什麼是二維陣列:
一維陣列使用陣列名稱與一個索引值來指定存取陣列元素,例如:a[0]=(“123”),在陣列a的第一個位置放入123
二維陣列使用陣列名稱與兩個索引值來指定存取陣列元素,例如:b[0][1]=(“456”),在陣列b的第一列第二欄/行的位置放入456
第一個[ ]是列(Row) ;第二個[ ]是欄或行(Column);[i][j] ,表示要存取 i 列 j 行的元素。
sendEmail(recipient, subject, body)
MailApp-class的Methods
recipient | String | the addresses of the recipients, separated by commas |
subject | String | the subject line |
body | String | the body of the email |