我正在尝试从共享电子邮件中位于特定文件夹中的CSV报告中获取数据,并用新数据替换Google表格中特定标签中的旧数据。
我已经尝试过不同的解决方案,但是似乎没有一个可以让我满意。下面的代码是我生成的最干净的代码,但是由于某种原因,它什么也不做,可能是由于需要复制的文件大小所致,因为可能有超过60万个数据单元。
格式:https://docs.google.com/spreadsheets/d/1GyGxSwUtITeje0-Qx63rB8xChMSbLvn1FDCOKOJITio/edit?usp=sharing
我已经尝试过不同的解决方案,但是似乎没有一个可以让我满意。下面的代码是我生成的最干净的代码,但是由于某种原因,它什么也没做,这可能是由于需要复制的文件大小所致。
function importCSVFromGmail() {
var threads = GmailApp.search("label:its {to:sharedemail@company.com} newer_than:1d");
var message = threads[0].getMessages().pop();
var attachment = message.getAttachments()[0];
if (attachment != null) {
var attachName = attachment.getName();
// Is the attachment a CSV file
if (attachName.substring(attachName.length-4) === ".csv") {
var id = "1GyGxSwUtITeje0-Qx63rB8xChMSbLvn1FDCOKOJITio";
var name = "ALLDATA";
var sheet = SpreadsheetApp.openById(id);
var tab = sheet.getSheetByName(name);
var tabInfo = sheet.getSheetByName("INFO");
tabInfo.getRange("B1").setValue(new Date());
// Clear the content of the sheet
tab.clearContents().clearFormats();
var csvData = Utilities.parseCsv(attachment.getDataAsString(), ",");
tab.getRange(1, 1, csvData.length, csvData[0].length).setValues(csvData);
}
}
}
执行上面的代码时,虽然可以与较小的文件完美配合,但我没有得到任何结果,也没有出现错误。我不确定为什么会这样。
任何想法都将不胜感激。
谢谢!