2017-04-26 91 views

回答

0

這將紙張發送的XLS到您的電子郵件。讓這個工作,然後設置一個基於時間的觸發器。 - 同時注意這是一張私人表單,在電子郵件發送後立即公開發布,然後重新設置爲私人表單。

function getGoogleSpreadsheetAsExcel(){ 
 
    
 
    try { 
 
    
 
    var ss = SpreadsheetApp.getActive(); 
 
    var sheet = DriveApp.getFileById(ss.getId()); 
 
    
 
    // sets sharing to public - to send out email. 
 
    sheet.setSharing(DriveApp.Access.ANYONE, DriveApp.Permission.EDIT); 
 
    
 
    var url = "https://www.googleapis.com/drive/v3/files/" + ss.getId() + "/export?mimeType=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet&key=" + "YOUR_KEY_GOES_HERE"; 
 
    var blob = UrlFetchApp.fetch(url).getBlob(); 
 
    
 
    Logger.log(url); 
 
    
 
    blob.setName(ss.getName() + ".xlsx"); 
 
    
 
    var now = new Date(); 
 
    
 
    MailApp.sendEmail("YOUR_EMAIL_ADDRESS_GOES_HERE", "Backup " + now , "Backup " + now , {attachments: [blob]}); 
 
    
 
    } catch (f) { 
 
    Logger.log(f.toString()); 
 
    } 
 
    // returns the file back to Private access 
 
    sheet.setSharing(DriveApp.Access.PRIVATE, DriveApp.Permission.EDIT); 
 
}

+0

感謝您的建議@OblongMedulla,我應該更清楚 - 它需要在電子郵件的正文中。 –

0

這裏是我的解決方案,到目前爲止,但它不乾淨&很不理想:

function myFunction() { 
 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
 
    var sheet = ss.getSheets()[0]; 
 
    var range = sheet.getRange(2, 1, sheet.getLastRow(), sheet.getLastColumn()); 
 
    var data = range.getValues(); 
 
    var body = ''; 
 
    for(var row in data) { 
 
    for(var col in data[row]) { 
 
     body += data[row][col] + '\t'; 
 
     } 
 
    } 
 
    body += '\n'; 
 
    } 
 
    Logger.log(body); 
 
    // MailApp.sendEmail('[email protected]', 'Director Dealings', body); 
 
}

0

您可以檢查此tutorial如何發送電子郵件從一個電子表格。

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, 2) 
    // Fetch values for each row in the Range. 
    var data = dataRange.getValues(); 
    for (i in data) { 
    var row = data[i]; 
    var emailAddress = row[0]; // First column 
    var message = row[1];  // Second column 
    var subject = "Sending emails from a Spreadsheet"; 
    MailApp.sendEmail(emailAddress, subject, message); 
    } 
} 

您需要使用MailApp.sendEmail()。請注意,此方法有四個版本

相關問題