2016-05-09 8 views
1

以下のコードを使用して、特定のラベルを持つ特定のGmailメッセージの本文をエクスポートしています。電子メール本文をGoogleスプレッドシートに複数のセルにエクスポート

問題は、体をGoogleシートのちょうど1セルに解析することです。

ただし、手動で値をコピーしてGoogleのシートにデータを貼り付けると、Gmail本体の表形式が必要な数のセルに保持されます。

コードに「paste value」要素を追加するにはどうすればよいですか?

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

テキストを複数のセルにまたがる方が良い理由はわかりませんが、これはどのように行うことができますか。

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); 

コードの2行目は、文字列を分割し、改行の周りに空白をトリミング方法に沿って、別の行に部品を配置します。

+0

サンドイッチがありがとうございました。電子メールにデータを集計しましたので、Googleシートにそのフォーマットを保持したいと思います。あなたのコードを試しましたが、エラーメッセージが表示されています:ReferenceError: "str"が定義されていません。 –