2014-09-01 93 views
0

我使用的是Google Apps腳本可以從Google表格中發送電子郵件。我發送一個小的CSV文件,它實際上工作。但是,當我在Microsoft Excel中打開附件時,單元格A1中有幾個奇怪的字符。當我在文本編輯器中打開時,它看起來很好。如何從Blob中刪除BOM的Apps腳本電子郵件附件

我正在Mac上工作,所以我在Xcode中使用了十六進制編輯器,並且看到了三個奇怪的初始字符EF BB BF。我猜這是字節順序標記。

這看起來很平凡,但我自動生成這些,並且接收者希望自動處理它們,所以這個小問題導致了一個問題。

有沒有辦法做到這一點沒有物料清單?也許一些更簡單的方法來使附件?

這是我的代碼:

var htmlBody = HtmlService.createHtmlOutputFromFile('message'), 
    blob = Utilities.newBlob([]); 
    blob.setDataFromString(csvdata, 'ASCII'); 
    blob.setContentType('text/csv'); 
    blob.setName('test.csv'); 
    MailApp.sendEmail({ 
     to: email, 
     subject: 'Test', 
     htmlBody: htmlBody, 
     attachments: [blob] 
    }); 

回答

0

我懷疑你看到的必須是csvdata變量多餘的字符。我幾乎準確地複製了你的代碼,但是用一個硬編碼的字符串替換了csvdata,並且它向我發送了一封帶有test.csv的電子郵件作爲附件,沒有你描述的前面的字符。

如果您直接通過腳本編輯器運行下面的函數,它是否工作?

function test() { 
    var htmlBody = HtmlService.createHtmlOutput('message'); 
    var blob = Utilities.newBlob([]); 
    blob.setDataFromString('hi there', 'ASCII'); 
    blob.setContentType('text/csv'); 
    blob.setName('test.csv'); 
    MailApp.sendEmail({ 
    to: '[email protected]', 
    subject: 'Test', 
    htmlBody: htmlBody, 
    attachments: [blob] 
    }); 
} 
相關問題