Вам нужно добавить данные о листе в цикл и из цикла вызывать генерацию файла
function onOpen() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var csvMenuEntries = [{ name: 'export as csv files', functionName: 'userActionSaveAllSheetsAsCSV' }];
ss.addMenu('csv', csvMenuEntries);
}
function userActionSaveAllSheetsAsCSV() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheets = ss.getSheets();
var ssid = ss.getId();
var fileInDrive = DriveApp.getFileById(ssid);
var folderInDrive = fileInDrive.getParents().next().getId();
const urls = sheets.map((sheet) => {
const filename = `${sheet.getParent().getName()} ${sheet.getName()}.csv`;
const array = sheet.getDataRange().getValues();
const url = saveArrayToCSV_(array, filename, folderInDrive);
return { url, filename, folderInDrive };
});
console.log(JSON.stringify(urls, null, ' '));
}
/**
* @param {string[][]} array
* @param {string} filename
* @param {string} folderInDrive
* @returns {string} The file url
*/
function saveArrayToCSV_(array, filename, folderInDrive) {
const data = array.map((row) => row.join(';')).join('\n');
const url = DriveApp.getFolderById(folderInDrive)
.createFile(filename, data, 'text/csv')
.getDownloadUrl()
.replace('?e=download&gd=true', '');
return url;
}
Результатом работы программы являются файлы, а также можно получить лог с именами файлов, идентификатором папки и ссылками.
Ссылка на живой пример
https://docs.google.com/spreadsheets/d/1A0ytCgO-v0...