На самом деле мне потребовалось две кнопки.
function onOpen() {
SpreadsheetApp.getUi().createMenu('My Tools')
.addItem('Save Variable As File', 'saveVariableAsFile')
.addItem('Download gpx.txt', 'downLoad')
.addToUi();
}
Используйте эту функцию или что-то подобное для сохранения содержимого в файл.Имя файла - gpx.txt, и вам нужно обновить идентификатор папки одним из ваших вариантов.Вы можете изменить имя файла, если хотите.Но он используется в нескольких местах, поэтому замените их все.
function saveVariableAsFile(gpx) {
var folder=DriveApp.getFolderById('FolderId');
var files=folder.getFilesByName("gpx.txt");
while(files.hasNext()) {files.next().setTrashed(true);}//guarantees that there is only one file with that name in the folder.
var file=folder.createFile("gpx.txt", gpx);
}
Этот сценарий вызывается из меню или, если вы хотите сделать его кнопкой изображения, которая будет зависеть от вас.Я генерирую диалог, который позволяет вам загрузить файл на ваш компьютер.
function downLoad() {
var url=ScriptApp.getService().getUrl();
var html=Utilities.formatString('<input type="button" value="Download GPX" onClick="window.location.replace(\'%s\');" />',ScriptApp.getService().getUrl());
var userInterface=HtmlService.createHtmlOutput(html);
SpreadsheetApp.getUi().showSidebar(userInterface);
}
Эта функция фактически выполняет загрузку.Он получает файл из указанной выше папки, поэтому вам необходимо заменить идентификатор папки.
function doGet() {
var folder=DriveApp.getFolderById('FolderId');
var file=folder.getFilesByName("gpx.txt").next();//There is only one file in the folder with that name
return ContentService.createTextOutput().append(file.getBlob().getDataAsString()).downloadAsFile(file.getName());
}