2017-04-26 14 views
0

私は毎週電子メールでGoogleシートのコンテンツを送信するスクリプトを作成しようとしています。Google AppsスクリプトでGoogleシートのコンテンツを送信

誰かが正しい方向に向かうことができますか?

EDIT:これはこれはあなたの電子メールへのXLSとしてシートをお送りしますボディで

+0

https://mailparser.io/blog/send-emails-from-google-spreadsheet/ –

答えて

0

にする必要があります。これを動作させてから、時間ベースのトリガーを設定します。また、これはプライベートシートであることに気付きます。メールが送信されてからプライベートに戻ってくる間に、すぐに公開されます。ここで

+0

あなたのご提案ありがとうございました@OblongMedulla、私はより明確にすべきでした - それは必要です電子メールの本文に入れること。 –

0

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); 
 
}
は、これまでの私の解決策だが、それはきれいではありません&理想からかけ離れ:あなたは電子メールを送信する方法については、この tutorialをチェックすること

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

スプレッドシートから。

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()を使用する必要があります。このメソッドの4つのバージョンがあることに注意してください。

関連する問題