Это помогает? Я прокомментировал, чтобы помочь объяснить, что он делает.
Вам необходимо включить Drive API в разделе Ресурсы> Расширенные службы Google.
Это сохранит вложение на диск и преобразует его. в Google Sheets. В этот момент вы можете открыть преобразованный файл Google Sheets и извлечь данные для сохранения в другие данные Google Sheets.
function doIt()
{
// get where we want to save the file
var destinationFolder = DriveApp.getFolderById("...");
// search for the email with the attachment you want to save
var emailThreads = GmailApp.search("...");
// go through each thread
for(var i = 0, numThreads = emailThreads.length; i < numThreads; ++i)
{
// get all of the emails in the thread
var emailMessages = emailThreads[i].getMessages();
// get all of the messages
for(var j = 0, numMessages = emailMessages.length; j < numMessages; ++j)
{
// get the message
var emailMessage = emailMessages[j];
// we only want messages that are not in the trash
if(emailMessage.isInTrash()) continue;
// get all of the attachments
var emailAttachments = emailMessage.getAttachments({includeInlineImages: false, includeAttachments: true});
// go through all attachments
for(var k = 0, numAttachments = emailAttachments.length; k < numAttachments; ++k)
{
// get the attachment
var emailAttachment = emailAttachments[k];
// save the attachment to the destination folder
var savedFile = destinationFolder.createFile(emailAttachment);
// log the URL of the saved file
Logger.log(savedFile.getUrl());
// create a copy of the file as a Google Sheets file
var sheetsFile = Drive.Files.insert({
"title": "...",
"parents": [{"id": destinationFolder.getId()}]
}, savedFile.getBlob(), {
"convert": true,
"supportsAllDrives": true,
"supportsTeamDrives": true
});
// log the URL and file ID of the converted file
Logger.log(sheetsFile.selfLink);
Logger.log(sheetsFile.id);
}
}
}
}