将电子邮件正文导出到Google表格中,导入多个单元格

时间:2016-05-09 17:57:47

标签: javascript google-apps-script google-sheets

我有以下代码用于导出具有特定标签的特定Gmail邮件正文。

问题在于它将正文解析为google表格中的一个单元格。

但是,如果我手动复制然后“粘贴值”将数据粘贴到Google工作表中,则gmail正文的表格格式会保留在所需的单元格数中。

如何将“粘贴值”元素添加到代码中?

var sheet = SpreadsheetApp.getActiveSheet();
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();

function getEmails() {
  var label = GmailApp.getUserLabelByName("Nanigans");
  var threads = label.getThreads();
  var row = 2;
  for (var i = 0; i < threads.length; i++) {
    var messages=threads[i].getMessages();
    for (var m=0; m < messages.length; m++) {   
      (sheet.getRange(row,1).setValue(messages[m].getPlainBody()),  {contentsOnly: true});
      row++;
    }
  }
}

function onOpen() {
  var menuEntries = [ {name: "Load Emails", functionName: "getEmails"} ];
  spreadsheet.addMenu("Email", menuEntries);
}

1 个答案:

答案 0 :(得分:1)

我不知道为什么让文本跨越多个单元格更好,但这就是你可以做到的。

var message = messages[m].getPlainBody(); 
var strSplit = str.split('\n').map(function(a) {return [a.trim()];});
sheet.getRange(row, 1, strSplit.length, 1).setValues(strSplit);

第二行代码拆分字符串并将片段放入单独的行中,沿着换行符修剪空白。