我正在使用 Google Apps脚本从Google表格中发送电子邮件。我发送一个小的CSV文件,它实际上工作。但是,当我在Microsoft Excel中打开附件时,单元格A1中有几个奇怪的字符。当我在文本编辑器中打开时,它看起来很好。
我在Mac上工作,所以我在Xcode中使用了十六进制编辑器,我看到了三个奇怪的初始字符EF BB BF。我猜这是Byte Order Marker。
这可能看似微不足道,但我自动生成这些,并且收件人希望自动处理它们,因此这个小问题导致了问题。
有没有方法可以在没有BOM的情况下执行此操作?也许是一些更简单的方法来制作附件?
这是我的代码:
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 :(得分: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: 'YOUREMAIL@gmail.com',
subject: 'Test',
htmlBody: htmlBody,
attachments: [blob]
});
}