- Вы хотите загрузить определенный лист в активной электронной таблице в виде файла PDF.
Если мое понимание верно, как насчет этого примера сценария?Этот пример сценария предполагает следующие пункты.
- Скрипт - это связанный с контейнером сценарий электронной таблицы.
- Лист, который вы хотите загрузить, находится в активной электронной таблице.
- Когда скрипт запускается, открывается диалоговое окно.При нажатии кнопки активный лист загружается в виде файла PDF на локальный компьютер.
- В этом сценарии файл PDF загружается Javascript.Поэтому я использовал диалог для выполнения Javascript.
Пример сценария:
При использовании этого сценария, пожалуйста, скопируйте и вставьте этот сценарий в редактор сценариев.Скрипт - это связанный с контейнером скрипт Spreadsheet.Когда вы запускаете downloadSheetAsPDF()
, в электронной таблице открывается диалоговое окно.Пожалуйста, проверь это.При нажатии на кнопку файл PDF загружается.
function downloadSheetAsPDF() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheetId = ss.getActiveSheet().getSheetId();
var url = "https://docs.google.com/a/mydomain.org/spreadsheets/d/" + ss.getId() + "/export?exportFormat=pdf&gid=" + sheetId + "&access_token=" + ScriptApp.getOAuthToken();
var str = '<input type="button" value="Download" onClick="location.href=\'' + url + '\'" >';
var html = HtmlService.createHtmlOutput(str);
SpreadsheetApp.getUi().showModalDialog(html, "sample");
}
Примечание:
- Это простой пример сценария.Поэтому, пожалуйста, измените это для вашей ситуации.
- Если вы хотите загрузить конкретное имя листа, пожалуйста, измените на
var sheetId = ss.getSheetByName("sheetName").getSheetId();
.
Ссылки:
Если это не тот результат, который вам нужен, я прошу прощения.
Редактировать:
- Вы хотите использовать конкретное имя файла PDF при загрузке файла.
- Вы хотите автоматически загружать его при запуске скрипта.
Если мое понимание верно, как насчет этого примера сценария?Процесс этого примера сценария выглядит следующим образом.Я думаю, что может быть несколько ответов для вашей ситуации.Поэтому подумайте об этом, как об одном из нескольких ответов.
- Файл PDF создается как временный файл.
- Создайте URL для загрузки.
- Откройтедиалоговое окно и файл PDF автоматически загружается при запуске Javascript.
- Удалите временный файл.
- Закройте диалоговое окно.
Пример сценария:
function downloadSheetAsPDF2() {
var filename = "sampleFilename.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");
}