我正在使用谷歌应用程序脚本从谷歌表单中发送电子邮件。我发送了一个小的CSV文件,它确实有效。但是,当我在Microsoft Excel中打开附件时,单元格A1中有几个奇怪的字符。当我在文本编辑器中打开时,它看起来很好。
我在Mac上工作,所以我在Xcode中使用了十六进制编辑器,我看到了三个奇怪的初始字符EF BB BF。我猜这是字节顺序标记。
这可能看起来微不足道,但我正在自动生成这些,收件人希望自动处理它们,所以这个小问题导致了问题。
有没有一种方法可以在没有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]
});
我怀疑您看到的额外字符一定在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]
});
}