我想做的是获取CSV附件的内容以输出到Google表格中。不知道我是否正确地执行了操作,但是我在网上找到了它,然后运行它,然后什么也没发生。
function importCSVFromGmail() {
var threads = GmailApp.search("from:cbuffone123@gmail.com");
var message = threads[0].getMessages()[0];
var attachment = message.getAttachments()[0];
// Is the attachment a CSV file
if (attachment.getContentType() === "text/csv") {
var sheet = SpreadsheetApp.getActiveSheet();
var csvData = Utilities.parseCsv(attachment.getDataAsString(), ",");
// Remember to clear the content of the sheet before importing new data
sheet.clearContents().clearFormats();
sheet.getRange(1, 1, csvData.length, csvData[0].length).setValues(csvData);
}
}
答案 0 :(得分:1)
在我的环境中,我确认从电子邮件中检索到附件*.csv
时,将mimeType检索为application/vnd.ms-excel
。我认为“什么都没有发生”的原因是这样。那么这些修改呢?我认为针对您的情况有几种解决方法。因此,请将这些修改视为其中的3种。
application/vnd.ms-excel
请在if (attachment.getContentType() === "text/csv") {
之前添加以下脚本。
attachment.setContentTypeFromExtension();
请进行如下修改。
从:if (attachment.getContentType() === "text/csv") {
至:
if (attachment.getContentType() === "application/vnd.ms-excel") {
请进行如下修改。
从:if (attachment.getContentType() === "text/csv") {
至:
var fileName = attachment.getName().toUpperCase().split(".");
if (fileName.length > 1 && fileName[1] == "CSV") {
setContentTypeFromExtension()
从文件名的扩展名中设置mimeType。application/vnd.ms-excel
。如果这些不是您想要的,对不起。