[英]Making table in google apps script from array
function arrayMail(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Sheet1');
var startRow = 2;
var lastRow = sheet.getLastRow();
var lastColumn = sheet.getLastColumn();
var range = sheet.getRange(startRow,1,lastRow,lastColumn);
var data = range.getValues();
var array = [];
for(var i=0;i<data.length;++i){
var row = data[i];
var rowTemp=[]; //create a blank array that will hold only the desired columns in this row
for (var j=0; j<row.length; j++)//iterates through columns
{
if(j==4||j==3||j==1||j==5){continue;}
rowTemp.push(row[j])
}
var emailPos = row[3];
var date = row[2];
if(emailPos =='example4@gmail.com'&& date == 0){
array.push(rowTemp);
}
}
GmailApp.sendEmail('example1@gmail.com','This is a test',array.join('\n\n'));
}
在上面的腳本中,當日期計數為0時,我用來發送電子郵件,並且該電子郵件成為發送電子郵件的參考對象。 我想使數組(如果使用上面的腳本,則為純文本)成為表格式。 我堅持使用表格格式。 問題是,如何在此處以表格格式制作它? 腳本初學者
閱讀本書/示例后,我想出了以下腳本。 但是它並沒有按預期工作。
function arrayMail(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Sheet1');
var startRow = 2;
var lastRow = sheet.getLastRow();
var lastColumn = sheet.getLastColumn();
var range = sheet.getRange(startRow,1,lastRow,lastColumn);
var data = range.getValues();
var tableStart = "<table border=\"1\"><tr>";
var tableEnd = "</tr></table>";
var array = [];
for(var i=0;i<data.length;++i){
var row = data[i];
var rowTemp=[]; //create a blank array that will hold only the desired columns in this row
for (var j=0; j<row.length; j++)//iterates through columns
{
if(j==4||j==3||j==1||j==5){continue;}
rowTemp.push('<td>'+row[j]+'</td>');
}
var emailPos = row[3];
var date = row[2];
if(emailPos =='example4@gmail.com'&& date == 0){
array.push(rowTemp);
}
}
var HTMLbody = tableStart +array.join('')+tableEnd;
GmailApp.sendEmail('example@gmail.com','This is a test',HTMLbody,{htmlBody:HTMLbody});
}
結果:
我想成為的樣子;
輸液泵0
輸液泵0
這不是一個完整的答案,但是下面的代碼將數組轉換為您在Google+帖子中詢問的字符串...
var array = [
['Infusion Pump', 'B', 'C', 'D', 'E', 'F'],
['Another Pump', 'B', 'C', 'D', 'E', 'F'],
['Defib', 'B', 'C', 'D', 'E', 'F']
];
var str = '';
for (var i = 0; i < array.length; i++) {
str = str + '<tr>';
for (var j = 0; j < array[i].length; j++) {
str = str + '<td>' + array[i][j] + '</td>';
}
str = str + '</tr>';
}
console.log(str);
根據SamScholefield的回答,我做了一些修改以滿足自己的需要,下面是最終代碼:
function arrayMail(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Sheet1');
var startRow = 2;
var lastRow = sheet.getLastRow();
var lastColumn = sheet.getLastColumn();
var range = sheet.getRange(startRow,1,lastRow,lastColumn);
var data = range.getValues();
var array = [];
for(var i=0;i<data.length;++i){
var row = data[i];
var rowTemp=[]; //create a blank array that will hold only the desired columns in this row
for (var j=0; j<row.length; j++){ //iterates through columns
if(j==4){continue;}
rowTemp.push(row[j]);
}
var emailPos = row[3];
var date = row[2];
if(emailPos =='example1@gmail.com'&& date == -28){
array.push(rowTemp);
}
}
var str = '';
var bodyEnd = '</table>';
var header = '<table border =1><tr><th>Message</th><th>Date Remind</th><th>Days Left</th><th>Email Address</th><th>Status</th></tr>';
for (var k = 0; k < array.length; k++) {
str = str + '<tr>';
for (var l = 0; l < array[k].length; l++) {
str = str + '<td>' + array[k][l] + '</td>';
}
str = str + '</tr>';
var msg = header+str+bodyEnd;
}
GmailApp.sendEmail(Session.getActiveUser().getEmail(),'This is a test',msg, {htmlBody:msg});
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.