Ежедневно я получаю электронное письмо с файлом XLSX, который мне нужно экспортировать в указанный c Google Sheet. Код просто ищет в GMAIL определенный c запрос, где он затем получает тело (которое содержит URL), которое затем загружается с помощью функции doGet, которая использует Url.FetchApp.fetch(url).getBlob()
После этого используя переменную fileInfo, он определяет заголовок, mimeType файла и «parent», который является идентификатором папки, в которую мне нужно поместить преобразованный файл.
Затем я вставляю файл с Drive.Files.insert(fileInfo, file, {convert: true})
, который должен конвертировать мой файл Excel и поместить его в мою папку. Экспорт работает (файл экспортируется). Если я добавляю расширение .xlsx вручную и пытаюсь открыть его в Excel, он открывается совершенно со всей необходимой информацией.
Но проблема в том, что мне не нужно открывать файл Excel, поэтому я пытаюсь экспортировать его в Google Sheet или даже проанализировать как CSV, но он не работает.
При попытке открыть этот экспортированный файл по идентификатору, он говорит, что он отсутствует или отсутствует " у меня нет разрешений, но они есть, и у меня есть разрешения. При проверке MIME-типа файла выдается «application / x-zip».
Можно ли в любом случае загрузить данные файла в свой лист Google с идентификатором «1HMXgJuuRFaGK11sfR38mKh6rk4ta_Qgtlljk6HBjLkE»?
function CostDSP() {
var sheetId="1HMXgJuuRFaGK11sfR38mKh6rk4ta_Qgtlljk6HBjLkE";
var threads = GmailApp.search("from:no-reply@amazon.com subject:Cost - DSP in:inbox newer_than:1d");
var message = threads[0].getMessages()[0];
var attachment = message.getPlainBody();
var regex= new RegExp("\<(.*)\>");
var url=regex.exec(attachment)[1];
Logger.log(url);
var file=doGet(url);
var fileInfo = {
title: "Cost - DSP",
mimeType: "MICROSOFT_EXCEL",
"parents": [{'id': "19jrt0DyfvsDz5WAdKhkekHkJ_wP7qP7f"}],
};
Drive.Files.insert(fileInfo, file, {convert: true});
var sourceFile = DriveApp.getFilesByName("Cost - DSP").next();
Logger.log(sourceFile.getMimeType());
Logger.log(sourceFile);
var source=SpreadsheetApp.openById("1lIVb9YM9IK7f8dKuC1RpXjP7nLnMNXm1");
var sheet = sourceFile.getSheets()[0];
var destination = SpreadsheetApp.openById("1HMXgJuuRFaGK11sfR38mKh6rk4ta_Qgtlljk6HBjLkE").getSheetByName('Data Intake');
sheet.copyTo(destination);
}
function doGet(e) {
// e.parameter["file"] //returns ?file=filelink.com/file.xlsx
var file = UrlFetchApp.fetch(e).getBlob();
return file;
}