Estoy usando el siguiente script para exportar una hoja como archivo de Excel, pero el nombre del archivo de salida siempre es Nombre del documento + Nombre de la hoja ("Exportado - Informe.xlsx"). ¿Cómo puedo modificar esto para usar solo el nombre de la hoja como nombre de archivo del archivo exportado ("Report.xlsx")?
function ExportSheet() { var SheetApp = SpreadsheetApp.getActive(); SheetApp.rename("Exported"); ShtURL = SheetApp.getUrl(); ShtID = SheetApp.getId(); ShtGID = SheetApp.getSheetId(); var url = ShtURL.toString().replace("/edit", "/export?format=xlsx&gid=" + ShtGID); var html = HtmlService.createHtmlOutput('<html><script>' +'window.close = function(){window.setTimeout(function(){google.script.host.close()},9)};' +'var a = document.createElement("a"); a.href="'+url+'"; a.target="_blank";' +'if(document.createEvent){' +' var event=document.createEvent("MouseEvents");' +' if(navigator.userAgent.toLowerCase().indexOf("firefox")>-1){window.document.body.append(a)}' +' event.initEvent("click",true,true); a.dispatchEvent(event);' +'}else{ a.click() }' +'close();' +'</script>' // Offer URL as clickable link in case above code fails. +'<body style="word-break:break-word;font-family:sans-serif;">Failed to open automatically. <a href="'+url+'" target="_blank" onclick="window.close()">Click here to proceed</a>.</body>' +'<script>google.script.host.setHeight(40);google.script.host.setWidth(410)</script>' +'</html>') .setWidth( 90 ).setHeight( 1 ); SpreadsheetApp.getUi().showModalDialog( html, "Opening ..." ); SheetApp.rename("Template"); }Desafortunadamente, en su situación, al usar la URL de ShtURL.toString().replace("/edit", "/export?format=xlsx&gid=" + ShtGID) , el nombre del archivo no se puede cambiar directamente. Entonces, en este caso, ¿qué tal la siguiente modificación?
function ExportSheet() { var SheetApp = SpreadsheetApp.getActive(); SheetApp.rename("Exported"); ShtURL = SheetApp.getUrl(); ShtID = SheetApp.getId(); ShtGID = SheetApp.getSheetId(); var url = ShtURL.toString().replace("/edit", "/export?format=xlsx&gid=" + ShtGID); // --- I modified below script. var blob = UrlFetchApp.fetch(url, { headers: { authorization: "Bearer " + ScriptApp.getOAuthToken() } }).getBlob(); var file = DriveApp.createFile(blob.setName(SheetApp.getSheets()[0].getSheetName())); url = "https://drive.google.com/uc?export=download&id=" + file.getId(); // --- var html = HtmlService.createHtmlOutput('<html><script>' + 'window.close = function(){window.setTimeout(function(){google.script.host.close()},9)};' + 'var a = document.createElement("a"); a.href="' + url + '"; a.target="_blank";' + 'if(document.createEvent){' + ' var event=document.createEvent("MouseEvents");' + ' if(navigator.userAgent.toLowerCase().indexOf("firefox")>-1){window.document.body.append(a)}' + ' event.initEvent("click",true,true); a.dispatchEvent(event);' + '}else{ a.click() }' + 'close();' + '</script>' // Offer URL as clickable link in case above code fails. + '<body style="word-break:break-word;font-family:sans-serif;">Failed to open automatically. <a href="' + url + '" target="_blank" onclick="window.close()">Click here to proceed</a>.</body>' + '<script>google.script.host.setHeight(40);google.script.host.setWidth(410)</script>' + '</html>') .setWidth(90).setHeight(1); SpreadsheetApp.getUi().showModalDialog(html, "Opening ..."); SheetApp.rename("Template"); file.setTrashed(true); // Added }SheetApp.getSheets()[0].getSheetName() de blob.setName(SheetApp.getSheets()[0].getSheetName()) .