Esta es la versión mejorada de mi primer intento, así que la he simplificado lo mas posible.
Revisa el vídeo
Revisa el video las veces que consideres necesarias para que puedas implementar correctamente su aplicación
function onOpen() {
SpreadsheetApp.getUi().createMenu('📤 Subir')
.addItem('🔍 elegir Archivo', 'verVentanaWeb')
.addToUi();
}
function processForm(formObject) {
var formBlob = formObject.myFile;
//var driveFile = DriveApp.createFile(formBlob);//crea el archivo en folder raiz
//------------ inicia adaptacion ----------------------------------------------
//ver en: https://drive.google.com/drive/folders/1B6UBUnt1rc_QoQPXOgE171bsc-gOnhvF
var carpetPrueba = DriveApp.getFolderById("Aquí va el ID de tu carpeta");//Cambio #3
var driveFile = carpetPrueba.createFile(formBlob);//Cambio #4
var ss = SpreadsheetApp.openById("ID de tu Google Sheets");//Cambio #5
var hoja = ss.getSheetByName("Hoja 2");//Cambio #6
var marcaTemp = Utilities.formatDate(new Date(), "GMT-06", "dd-MM-yyyy HH:mm:ss");//Cambio #7
hoja.appendRow([marcaTemp, driveFile.getName(),driveFile.getUrl(),driveFile.getId()]);//Cambio #8
//------------ termina adaptación ---------------------------------------------
return driveFile.getUrl();
}
function verVentanaWeb(){
var html = HtmlService.createHtmlOutputFromFile('index')
.setHeight(340)
.setWidth(550);
SpreadsheetApp.getUi().showModelessDialog(html, '😎 Cargador de Archivos de Ofimatica P/Emp 🧪') //.showSidebar(html);
}
<!DOCTYPE html>
<html>
<head>
<style> /* sea gregaron todos los estilos que no estan eneel original */
.cont{padding:30px;background-color:lightblue;border-radius:10px;width:70%;margin:auto;}
#cargar{width:120px;border-radius:6px;border:none;}
/* #cerrar{width:120px;border-radius:6px;border:none;background-color:green;color:white;} */
input,button{padding:8px;background-color:black;color:white;border-radius:4px;width:100%;}
input,button:hover{background-color:blue}
</style>
<base target="_top">
<script>
// Prevent forms from submitting.
function preventFormSubmit() {
var forms = document.querySelectorAll('form');
for (var i = 0; i < forms.length; i++) {
forms[i].addEventListener('submit', function(event) {
event.preventDefault();
});
}
}
window.addEventListener('load', preventFormSubmit);
function handleFormSubmit(formObject) {
google.script.run.withSuccessHandler(updateUrl).processForm(formObject);
}
function updateUrl(url) {
var div = document.getElementById('output');
div.innerHTML = '<b><a href="' + url + '" target="_blank">ver archivo!</a></b>';
document.getElementById('cargar').textContent = "Terminado.." ;
document.getElementById('cargar').style.backgroundColor = "darkgreen";
cerrarVentana();
}
function cambiaBtn(){
document.getElementById('cargar').textContent = "Subiendo.." ;
/* document.getElementById('cargar').innerText = "Subiendo..." ;
document.getElementById('cargar').innerHTML = "Subiendo 2.." ; */
}
function cerrarVentana(){ //temporizador para cerrar desp de 2 seg.
setTimeout(function() {
google.script.host.close();//ver: https://byby.dev/js-wait-n-seconds
}, 3000);
}
</script>
</head>
<body>
<div class="cont">
<h2>Enviar archivos a mi Drive V2.0</h2>
<form id="myForm" onsubmit="handleFormSubmit(this)">
<input name="myFile" type="file" />
<br><br>
<!--<input id="cargar" type="submit" value="Enviar" onclick="cambiaBtn()" /> -->
<button id="cargar" onclick="cambiaBtn()">Enviar</button>
</form>
<br>
<div id="output"></div>
<p><i>Adaptacion by fredy</i></p> <!-- se agrego esta linea como nota -->
<!-- <input id="cerrar" type="submit" value="Cerrar" onclick="google.script.host.close()" /> -->
</div>
</body>
</html>
</body>
</html>
síguenos en: