Mi código para obtener la URL (de una nueva hoja de trabajo que se ha copiado)
DriveApp.getFileById(sheet.getId()).makeCopy(nom,destFolder).getUrl(); var htmlOutput = HtmlService.createHtmlOutput('<a href="https://docs.google.com/spreadsheets/d' + '/" target="_blank">' + fileUrl + '</a>') .setWidth(350).setHeight(50); SpreadsheetApp.getUi().showModalDialog(htmlOutput,'Flowcalculator');
El Html muestra la URL correcta para el nuevo archivo, excepto que tiene una terminación ....../edit?usp=drivesdk.
¿Necesito escribir una función de 'formato' para eliminar el ?usp=drivesdk. o cambie el sufijo a 'compartir' (quiero que el usuario pueda abrir el archivo desde ModalDialog haciendo clic en la URL
Creo que en su situación, incluso cuando https://docs.google.com/spreadsheets/d/{spreadsheetId}/edit?usp=drivesdk
se usa como hipervínculo para abrir la hoja de cálculo, se puede usar el enlace.
Pensé que en su secuencia de comandos, se requiere '<a href="https://docs.google.com/spreadsheets/d' + '/" target="_blank">' + fileUrl + '</a>'
para ser modificado. En este caso, la URL es https://docs.google.com/spreadsheets/d/
. Esto no puede ser usado.
Si desea abrir la hoja de cálculo copiada haciendo clic en el enlace del cuadro de diálogo, ¿qué le parece la siguiente modificación?
var fileUrl = DriveApp.getFileById(sheet.getId()).makeCopy(nom, destFolder).getUrl(); var htmlOutput = HtmlService.createHtmlOutput(`<a href="${fileUrl}" target="_blank">${fileUrl}</a>`).setWidth(350).setHeight(50); SpreadsheetApp.getUi().showModalDialog(htmlOutput, 'Flowcalculator');
En este caso, declare las variables de sheet
, nom
y destFolder
.
Si desea utilizar https://docs.google.com/spreadsheets/d/{spreadsheetId}/edit?usp=sharing
en lugar de https://docs.google.com/spreadsheets/d/{spreadsheetId}/edit?usp=drivesdk
, modifíquelo de la siguiente manera.
De
var fileUrl = DriveApp.getFileById(sheet.getId()).makeCopy(nom, destFolder).getUrl();
A
var fileUrl = DriveApp.getFileById(sheet.getId()).makeCopy(nom, destFolder).getUrl().replace("drivesdk", "sharing");