我收到一些电子邮件到我的Gmail帐户,其中包含带有数字数据的CSV文件。
CSV格式相同,每天使用SendGrid发送。
我必须在iPython中手动整理和处理CSV文件并生成汇总计算。
我可以部署一个简单的Google脚本,它会自动将这些CSV文件保存到我的Google云端硬盘中,以便我可以运行批处理脚本来立即处理它们吗?
我对Python和脚本编程比较熟悉,但我似乎无法在Google Scripts上找到任何基本教程。
提前致谢。
我找到了这个 Retrieve csv attachment file from gmail and place the data in a google spreadsheet这个 Trigger Google Apps Script by email
但希望有一个好的,易于学习的教程。
答案 0 :(得分:0)
好的,这比我想象的要简单得多
var targetFile = "1**************vr4PchIo1wcpTEQU"; // Output file
var targetSheet = "booking_weekly"; // output sheet
function Main() {
/Different reports and client abbreviations
reportname = '_booking_weekly'
clientnames = ['OO','TP','TG',]
for(var i = 0;i <clientnames.length;i++){
clientname = clientnames[i]
/Set the search string up
searchstring = 'subject:' + clientname + reportname
var searchedThreads = GmailApp.search( searchstring)[0];
var id = searchedThreads.getId();
var attachtextLength = GmailApp.getMessageById(id).getAttachments()[0].getDataAsString().length;
if (attachtextLength <= 2000){
var attachtext = GmailApp.getMessageById(id).getAttachments()[0].getDataAsString();
UpdateSheet(attachtext,clientname,reportname);
}
}
}
function UpdateSheet(dataString,client,report) {
//ommited CSVTo Array function as it is in the Tutorials
var dataArray = CSVToArray(dataString);
var myFile = SpreadsheetApp.openById(targetFile);
var mySheet = myFile.getSheetByName(targetSheet);
var lastRowValue = mySheet.getLastRow();
for (var i = 0; i < dataArray.length; i++) {
mySheet.getRange(i+lastRowValue+1, 3, 1, dataArray[i].length).setValues(new Array(dataArray[i]));
//Pass client name to sheet
mySheet.getRange(i+lastRowValue+1, 1, 1, 1).setValue([client]);
//Passs reportname to sheet
mySheet.getRange(i+lastRowValue+1, 2, 1, 1).setValue([report]);
}
mySheet.deleteRows(lastRowValue+1)
}