Я не думаю, что это можно сделать с помощью URL-адреса, поскольку вам нужно захватить новый документ и изменить имя.
Что я смог сделать, так это создать функцию сценария, которая создаст новый файл с именем листа, но сохранит его на вашем диске с указанным идентификатором папки, а затем примет идентификатор для нового файл, и он создаст URL, который будет добавлен в ячейку A1: A1, чтобы вы могли загрузить новый документ с именем листа. Через 1 минуту файл будет отправлен в корзину.
function getSheetUrl() {
var SS = SpreadsheetApp.getActiveSpreadsheet();
var ss = SS.getActiveSheet();
var url = 'https://docs.google.com/spreadsheets/d/SpreadsheetId/';
url += 'export?format=xlsx&gid=';
url += ss.getSheetId();
var params = {
method: "GET",
headers: {
"authorization": "Bearer " + ScriptApp.getOAuthToken()
}
};
var response = UrlFetchApp.fetch(url, params).getBlob().setName(ss.getSheetName()).copyBlob();
var dir = DriveApp.getFolderById("FolderId");
var file = dir.createFile(response);
var id = file.getId();
ss.getRange("A1:A1").setValue("https://docs.google.com/uc?id=" + id + "&export=download");
Utilities.sleep(60000);
DriveApp.getFileById(id).setTrashed(true);
}
Я не мастер в Apps Script, но мне удалось заставить его работать. Надеюсь, это поможет, если вы не хотите, чтобы файл отправлялся в корзину, просто удалите 2 строки из утилит и setTrashed. Вы можете сохранить документы для последующего их удаления также из Корзины, чтобы избежать использования места на диске. Мне не удалось найти метод, который удаляет файл навсегда, только removeFile (), но это просто удаляет файл с диска и, по-видимому, будет по-прежнему использовать место на диске.
Привет.