めも帖

「めも帖」代わりにダラダラと書いていったり、めもしたりしているだけです。

Google Apps ScriptでGoogle Spreadsheetの内容をCSVファイルにして添付ファイルでメールを送る

Google Apps ScriptでGoogle SpreadSheet(スプレッドシート)の内容をCSVファイルにして添付ファイルでメールを送るのを作りました。
A1から内容が書かれているの限定ですが、調整することもできるんじゃないかと思います。
以前に書いた「Google Apps Scriptでcronみたいに定期的な処理でメールを送る」と組み合わせると、定期的にGoogle SpreadSheet(スプレッドシート)の内容をメールで送ることができると思います。

設定

メールアドレスの宛先、CSVファイル名、どのシートをCSVにするのかを決めます。
他にも、メールのタイトルや、本文なども決めることができます。

ソース

function attachmentsToCsvFile() {
  var csvFileName = 'test.csv';
  var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('all');
  var maxColumn = ss.getLastColumn();
  var maxRow    = ss.getLastRow();
  var data = ss.getRange(1,1,maxRow,maxColumn).getValues();

    if (data.length > 1) {
      var csv = "";
      for (var row = 0; row < data.length; row++) {
        for (var col = 0; col < data[row].length; col++) {
          if (data[row][col].toString().indexOf(",") != -1) {
            data[row][col] = "\"" + data[row][col] + "\"";
          }
        }

        if (row < data.length-1) {
          csv += data[row].join(",") + "\r\n";
        }
        else {
          csv += data[row];
        }
      }
      csvFile = csv;
    }
  var attachments = [{fileName:csvFileName, mimeType:'text/comma-separated-values', content: csvFile}];
  MailApp.sendEmail("xxxxx@gmail.com", "CSV file", "CSV file", {attachments:attachments});
}