- Вы хотите экспортировать один из листов (
TargetSheet
) в активной электронной таблице как файл XLSX. - Из примера сценария URL-адреса в своем вопросе вы хотите создать файл XLSX в вашем Google Диске.
- Вы хотите добиться этого, используя пример сценария URL в вашем вопросе с помощью скрипта Google Apps.
Если мое понимание верно как насчет этого ответа? Пожалуйста, подумайте об этом как об одном из нескольких возможных ответов.
Поток:
Когда я увидел пример сценария URL в вашем вопросе, кажется, что поток выглядит следующим образом.
- Скопировать активную электронную таблицу как временную электронную таблицу.
- Преобразовать формулы в тексты.
- Удалить листы, кроме листа, который вы хотите экспортировать.
- Извлечение URL-адресов экспорта.
- Извлечение большого двоичного объекта из URL-адреса экспорта.
- Создание большого двоичного объекта в виде файла.
- Удаление временной таблицы.
В вашем случае тип экспорта - это формат XLSX, который является константой. Поэтому я думаю, что стоимость процесса может быть немного снижена. Таким образом, модифицированный скрипт выглядит следующим образом.
Пример скрипта:
Скопируйте и вставьте следующий скрипт в редактор скриптов электронной таблицы. И, пожалуйста, установите exportSheetName
. Затем, пожалуйста, запустите функцию exportarPlanilha
в редакторе скриптов. Когда отобразится экран авторизации, авторизуйте области. Таким образом, скрипт запускается.
function exportarPlanilha() {
const exportSheetName = 'TargetSheet'; // Please set the target sheet name.
// 1. Copy the active Spreadsheet as a tempora Spreadsheet.
const spreadsheet = SpreadsheetApp.getActiveSpreadsheet().copy('tmp');
// 2. Convert the formulas to the texts.
const targetRange = spreadsheet.getSheetByName(exportSheetName).getDataRange();
targetRange.copyTo(targetRange, {contentsOnly:true});
// 3. Delete the sheets except for a sheet you want to export.
spreadsheet.getSheets().forEach(sheet => {
if (exportSheetName != sheet.getName()) spreadsheet.deleteSheet(sheet)
});
// 4. Retrieve the blob from the export URL.
const id = spreadsheet.getId();
const xlsxBlob = UrlFetchApp.fetch(`https://docs.google.com/spreadsheets/export?id=${id}&exportFormat=xlsx`, {headers: {authorization: `Bearer ${ScriptApp.getOAuthToken()}`}}).getBlob();
// 5. Crete the blob as a file.
DriveApp.createFile(xlsxBlob.setName(`${exportSheetName}.xlsx`));
// 6. Delete the temporate Spreadsheet.
DriveApp.getFileById(id).setTrashed(true);
}
- В этом случае временная электронная таблица перемещается в поле tra sh.
Примечание:
- В этом случае включите V8 в редакторе сценариев.
- В приведенном выше сценарии файл XLSX создается в папке root. Если вы хотите создать файл в указанной папке c, скажите, пожалуйста.
Ссылки:
Если я неправильно понял ваш вопрос, и вы не указали хочу, извиняюсь.