【发布时间】:2021-02-23 18:42:59
【问题描述】:
我是使用应用脚本的初学者,目前我只是在复制示例。我希望有人可以帮助我编写下面的脚本。它旨在从我的 Gmail 中获取一个 excel 文件并将其复制到 Google 工作表中。我从这里的一个问题中看到了这个脚本,但不能让它工作。谷歌表格文件在这里:https://docs.google.com/spreadsheets/d/1rED5zphZKp7JIK9qaTpHLKBSMsSiLAvhBAXc6Tn0zqI/edit#gid=301517543
脚本:
function getRawData() {
var threads = GmailApp.search('subject:myRentokil Report Delivery: Canpac | Pest Activity');
var message = threads[0].getMessages()[0];
var attachment = message.getAttachments()[0];
var xlsxBlob = attachment[0]; // Is supposes that attachment[0] is the blob of xlsx file.
var convertedSpreadsheetId = Drive.Files.insert({mimeType: MimeType.GOOGLE_SHEETS}, xlsxBlob).id;
var sheet = SpreadsheetApp.openById(convertedSpreadsheetId).getSheets()[0]; // There is the data in 1st tab.
var data = sheet.getDataRange().getValues();
Drive.Files.remove(convertedSpreadsheetId); // Remove the converted file.
var sheet = SpreadsheetApp.openById("1rED5zphZKp7JIK9qaTpHLKBSMsSiLAvhBAXc6Tn0zqI").getSheetByName("RawData");
sheet.clearContents();
var range = sheet.getRange(1, 1, data.length, data[0].length);range.setValues(data);
}
【问题讨论】:
-
尝试在脚本编辑器的服务部分开启DriveAPI。
-
错误信息是什么?
-
嗨,它现在可以工作了,但是,我必须删除“Drive.Files.remove(convertedSpreadsheetId);”行这意味着转换后的纸张会堆积在我的驱动器上。如何自动删除临时工作表。错误信息显示:Error Document 15ntCXkDasViXnrqlTfI6hjWvAch_hXqS8a2r9ybmXRU is missing(可能已被删除,或者您没有读取权限?)