【发布时间】:2021-01-25 19:40:13
【问题描述】:
专家,感谢您抽出宝贵时间!
触发 google 脚本时,我需要将表格文件自动下载到特定计算机上的特定文件夹中。我可以想到两种可能的方法:
-
直接从表格/驱动器下载文件(模拟“下载为...”菜单项)。
-
复制所需文件(已在相关本地计算机的 Google Drive 文件夹中,由 Google Backup and Sync 提供),然后从 Google Drive 文件夹中删除源文件。
这两种方法都可以吗?
目前,我正在向我的 Gmail 发送一个 pdf 文件,但我想在我的计算机上获取该 pdf 文件并完全绕过 Gmail。
我找到了一个脚本(谢谢 Tanaike),但无法让它工作。这是一个副本:
function downloadSheetAsPDF2() {
var filename = "sampleFile.pdf"; // Please set the filename here.
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheetId = ss.getActiveSheet().getSheetId();
// Creat PDF file as a temporary file and create URL for downloading.
var url = "https://docs.google.com/a/mydomain.org/spreadsheets/d/" + ss.getId() + "/export?exportFormat=pdf&gid=" + sheetId + "&access_token=" + ScriptApp.getOAuthToken();
var blob = UrlFetchApp.fetch(url).getBlob().setName(filename);
var file = DriveApp.createFile(blob);
var dlUrl = "https://drive.google.com/uc?export=download&id=" + file.getId();
// Open a dialog and run Javascript for downloading the file.
var str = '<script>window.location.href="' + dlUrl + '"</script>';
var html = HtmlService.createHtmlOutput(str);
SpreadsheetApp.getUi().showModalDialog(html, "sample");
file.setTrashed(true);
// This is used for closing the dialog.
Utilities.sleep(3000);
var closeHtml = HtmlService.createHtmlOutput("<script>google.script.host.close()</script>");
SpreadsheetApp.getUi().showModalDialog(closeHtml, "sample");
}
如果需要做任何事情来使该脚本运行,我会全力以赴 - 并将永远感激不尽!
【问题讨论】:
-
但无法正常工作。描述性不够。见minimal reproducible example
-
您遇到什么错误?你在隐身吗?
-
我解决了我的问题 - 我意识到我已经有了想要以 PDF 格式作为电子邮件附件输出的工作表。我只是创建了另一个电子邮件帐户,并使用 Thunderbird 作为我的电子邮件客户端。我可以使用 Thunderbird 插件删除电子邮件附件,并将附件文件放在本地文件夹中。
-
你会考虑发布一个答案来解释你是如何解决你的问题的吗?
标签: google-apps-script google-sheets