Вот код с решением:
function convertExceltoGoogleSpreadsheet() {
var folder = DriveApp.getFolderById('put the id's folder here')
var excelFile = folder.getFilesByType(MimeType.MICROSOFT_EXCEL).next();
var fileId = excelFile.getId();
var folderId = Drive.Files.get(fileId).parents[0].id;
var blob = excelFile.getBlob();
var resource = {
title: excelFile.getName(),
mimeType: MimeType.GOOGLE_SHEETS,
parents: [{id: folderId}],
};
Drive.Files.insert(resource, blob);
}
Позже вам нужно удалить файлы Excel с помощью этого скрипта:
function remove(){
var folder = DriveApp.getFolderById('put you folder's id here');
var files = folder.getFilesByType(MimeType.MICROSOFT_EXCEL);;
while (files.hasNext()){
var file = files.next();
folder.removeFile(file);
}
Третий шаг - поставить уведомление:
function checkForChangedFiles() {
// folder
var folderID = '"' + "folder's id" + '"';
// email configuration
var emailFromName ="emailname";
var emailSubject = "emailsubject";
var emailBody = "<b><br>bodyemail:<br></b>" +
"line1<br>" +
"line2<br>"+
"line3<br>"+
"line4<br>";
var emailFooter = "footer";
var folderSearch = folderID + " " + "in parents";
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var email = sheet.getRange("put the cell with the email's values").getValue();
var timezone = ss.getSpreadsheetTimeZone();
var today = new Date();
var time = new Date(today.getTime() - 1 * 30 * 1000); // 30 seconds
var startTime = time.toISOString();
var search = '(trashed = true or trashed = false) and '+ folderSearch +' and (modifiedDate > "' + startTime + '")';
var files = DriveApp.searchFiles(search);
var row = "", count=0;
while( files.hasNext() ) {
var file = files.next();
var fileName = file.getName();
var fileURL = file.getUrl();
var lastUpdated = Utilities.formatDate(file.getLastUpdated(), timezone, "dd-MM-yyyy HH:mm");
var dateCreated = Utilities.formatDate(file.getDateCreated(), timezone, "dd-MM-yyyy HH:mm")
row += "<li>" + lastUpdated + " <a href='" + fileURL + "'>" + fileName + "</a></li>";
sheet.appendRow([dateCreated, lastUpdated, fileName, fileURL]);
count++;
}
if (row !== "") {
row = "<p>" + count + " New File:</p><ol>" + row + "</ol>";
row += emailBody+"<br>" + "<br><small> "+emailFooter+" </a>.</small>";
MailApp.sendEmail(email, emailSubject, "", {name: emailFromName, htmlBody: row});
}
И наконец мы собрали все вместе:
function doall(){
convertExceltoGoogleSpreadsheet();
Utilities.sleep(10000);
remove();
Utilities.sleep(10000);
checkForChangedFiles();
}