0% encontró este documento útil (0 votos)
276 vistas12 páginas

Apps Script

Cargado por

daniel9527
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
276 vistas12 páginas

Apps Script

Cargado por

daniel9527
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Contenido

Indice Dinámico..................................................................................................................................2
Creación Carpetas Dinámico..............................................................................................................3
Conversor Dirección a Coordenadas Georreferenciadas....................................................................4
URL Absoluta de Google Drive a Google Sheets.................................................................................6
Formulario Script en Google Sheet, con búsqueda y modificaciones.................................................8
Indice Dinámico

function indiceDinamico (){
  //Configuracion
const nombreInicio="Inicio";
var misHojas=SpreadsheetApp.getActiveSpreadsheet().getSheets();
var hojaInicio=SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Inicio");
var i=2;

//Borrar todo el contenido antes de actualizar el indice
hojaInicio.getRange(2,1,hojaInicio.getLastRow()).clearContent();

//Ciclo que recorre todas las pestañas actuales
misHojas.forEach(function(hoja){

    //Condicional para no seleccionar pestaña "Inicio"
  if(hoja.getName()!=nombreInicio){

    //Agrega formula hipervinculo con el nombre y la Id de cada pestaña
    var formula='=HYPERLINK("#gid='+hoja.getSheetId()+'";"'+hoja.getName()+'")'
    hojaInicio.getRange(i,1).setFormula(formula)

    //Agrega formula hipervinculo con pestaña Inicio a cada pestaña
    hoja.getRange(1,1).setFormula('=HYPERLINK("#gid=0";"Ir a Inicio")')
    i++;
  } //Cierre If Inicio
}) //Cierre Ciclo

}
Creación Carpetas Dinámico

function crearCarpeta(){
  var libro=SpreadsheetApp.getActiveSpreadsheet()
  var hoja=libro.getSheetByName("Config")
  var nombreMaestra=hoja.getRange("B2").getValue()
  var carpeta=DriveApp.createFolder(nombreMaestra)
  hoja.getRange("C2").setValue(carpeta.getId())
}

function crearCarpetaDentroDeCarpeta(){
  var libro=SpreadsheetApp.getActiveSpreadsheet()
  var hoja=libro.getSheetByName("Config")
  var idMaestra=hoja.getRange("C2").getValue()
  var carpeta=DriveApp.getFolderById(idMaestra)
  var subCarpetas=hoja.getRange(4,2,hoja.getLastRow()-3).
getValues();
  console.log(subCarpetas)
 subCarpetas.forEach((fila,indice)=>{
   var subcarpeta=carpeta.createFolder(fila[0]);
   var idSubcarpeta=subcarpeta.getId();
   hoja.getRange(indice+4,3).setValue(idSubcarpeta)
   }) 
}

function OnOpen() {
  const menu=SpreadsheetApp.getUi().createMenu("Carpetas");
  menu.addItem("Crear carpeta maestra","crearCarpeta");
  menu.addItem("Crear sistema de carpetas","crearCarpetaDentroDeCarpeta");
  menu.addToUi();
}
Conversor Dirección a Coordenadas Georreferenciadas

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var dataRangeAll = sheet.getDataRange();
var ultimaFila = dataRangeAll.getLastRow();

function onOpen() {  
  var ui = SpreadsheetApp.getUi();
  ui.createMenu('Geocodificar')
      .addItem('Convertir direcciones en coordenadas', 'geocodificar')
      .addToUi();
}

// Geocodificar todas las filas a partir de la 2da
function geocodificar() {
  var filaInicial = 2;
  var dataRange = sheet.getRange(filaInicial, 1,ultimaFila, 5);
  var data = dataRange.getValues();

  // Recorremos todas las filas del rango
  for(var i=0; i< data.length; i++) {
    var fila = data[i];

    var direccion = fila[0];

    // Solamente haremos algo si hay algo en la celda de dirección, 
    // para no generar errores inesperados
    if(direccion != "") {
      // Aquí es donde nos conectamos con Google Maps
      var geocoder = Maps.newGeocoder().geocode(direccion);
      var resultado = geocoder.results[0];
      Utilities.sleep(500);

      var latitud = 0;
      var longitud = 0;

      // Si el geocoder de Google Maps nos devuelve un resultado satisfactorio, 
      // escribimos la latitud y longitud en las celdas correspondientes al a fila
      if(resultado) {
        latitud = resultado.geometry.location.lat;
        longitud = resultado.geometry.location.lng;
        sheet.getRange(filaInicial + i, 4).setValue(latitud);
        sheet.getRange(filaInicial + i, 5).setValue(longitud);
      }
    }
  }
}
URL Absoluta de Google Drive a Google Sheets
function enlace() {

  // seleccionar la hoja de cálculo actual
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName('Hoja 1');

  // obtener la ultima fila y columna
  var lastCol = sheet.getLastColumn();
  var lastRow = sheet.getLastRow();

  //limpiar contenido
  sheet.getRange(2, 1, lastRow, lastCol).clearContent();

// identificacion de la carpeta de trabajo
  
  var fldr=DriveApp.getFolderById("1HB28oMhn-weBPqlmuQ4g4QaFk5es2NgP");

  var files=fldr.getFiles();

      // crear variable para usar como contador para verificar el número de archivo
    var fileCounter = 0;

    // cree una matriz vacía para insertar datos de archivo para agregar a la hoja al final
    var fileData = [];

    // recorrer cada archivo devuelto ***********************
    while (files.hasNext()) {

      // obtener el archivo
      var file = files.next();

      // obtener el nombre del archivo
      var fileName = file.getName();

      // quitar extension

      var fileSimple= (fileName.split("."))[0];  
 
      // obtener el ID del archivo
     // var fileID = file.getId();

      // obtner la url del archivo
      var fileUrl = file.getUrl();
      // crear cadena de la url del archivo
     // var hyperlink = '=HYPERLINK("' + fileUrl + '","' + fileName + '")';
      var hyperlink = fileUrl + fileName;

      // obeter el tipo de archivo
      var fileType = file.getMimeType();

      // recopilar datos de fila y añadirlos a la matriz, para luego agregarlos a la hoja
     // var rowData = [fileName, fileID, hyperlink, fileType];
      var rowData = [fileSimple, fileName, hyperlink, fileType];

      fileData.push(rowData);

      // incrementar el contador de archivos en 1
      fileCounter++;

    }

    // obtener la ultima fila libre + 1 (despues del encabezado) 
    var lastRow = sheet.getLastRow() + 1;
    // obtener el largo del array 
    var arrayLength = fileData.length;
    // obtener el ancho de los registros del array (cantidad de columnas)
    var arrayWidth = fileData[0].length;
    sheet.getRange(lastRow, 1, arrayLength, arrayWidth).setValues(fileData);

    
}

URL: https://www.youtube.com/watch?v=dFkHKXR2nxQ
Formulario Script en Google Sheet, con búsqueda y modificaciones

//
Limpiar
celdas
function Limpiar() {
var hojaActiva = SpreadsheetApp.getActiveSpreadsheet();
var formulario = hojaActiva.getSheetByName("Formulario");

var celdasALimpiar = ["B3", "B6", "B8", "B10", "D6", "D8", "D10"]; //


Celdas a limpiar
for (var i=0; i<celdasALimpiar.length; i++){
formulario.getRange(celdasALimpiar[i]).clearContent();
}
}

// Guardar celdas
function Guardar(){
var hojaActiva = SpreadsheetApp.getActiveSpreadsheet();
var formulario = hojaActiva.getSheetByName("Formulario"); // Nombre de
hoja del formulario
var datos = hojaActiva.getSheetByName("Datos"); // Nombre de hoja donde se
almacenan datos

// Celdas de donde se obtendrán los datos a guardar


var valores = [[formulario.getRange("B6").getValue(),
formulario.getRange("B8").getValue(),
formulario.getRange("B10").getValue(),
formulario.getRange("D6").getValue(),
formulario.getRange("D8").getValue(),
formulario.getRange("D10").getValue()]];

// Inyección de datos a hoja donde se almacenan datos


datos.getRange(datos.getLastRow()+1,1,1,6).setValues(valores); // El "6"
se cambia por cantidad de datos a almacenar
Limpiar(); // Ejecución de función para limpieza de celdas
}

// Buscar
var NUM_COLUMNA_BUSQUEDA = 0;
function Buscar() {

var hojaActiva = SpreadsheetApp.getActiveSpreadsheet();


var formulario = hojaActiva.getSheetByName("Formulario"); // Nombre de
hoja del formulario

var valor = formulario.getRange("B3").getValue();


var valores =
hojaActiva.getSheetByName("Datos").getDataRange().getValues(); // Nombre de
hoja donde se almacenan datos
for (var i = 0; i < valores.length; i++) {
var fila = valores[i];
if (fila[NUM_COLUMNA_BUSQUEDA] == valor) {

formulario.getRange("B6").setValue(fila[0]);
formulario.getRange("B8").setValue(fila[1]);
formulario.getRange("B10").setValue(fila[2]);
formulario.getRange("D6").setValue(fila[3]);
formulario.getRange("D8").setValue(fila[4]);
formulario.getRange("D10").setValue(fila[5]);
}
}
}

// Actualizar
function Actualizar(){
var hojaActiva = SpreadsheetApp.getActiveSpreadsheet();
var formulario = hojaActiva.getSheetByName("Formulario"); // Nombre de
hoja del formulario
var datos = hojaActiva.getSheetByName("Datos"); // Nombre de hoja donde se
almacenan datos

var valor = formulario.getRange("B3").getValue();


var valores =
hojaActiva.getSheetByName("Datos").getDataRange().getValues(); // Nombre de
hoja donde se almacenan datos
for (var i = 0; i < valores.length; i++) {
var fila = valores[i];
if(fila[NUM_COLUMNA_BUSQUEDA] == valor) {
var INT_R = i+1

var valores1 = [[formulario.getRange("B6").getValue(),


formulario.getRange("B8").getValue(),
formulario.getRange("B10").getValue(),
formulario.getRange("D6").getValue(),
formulario.getRange("D8").getValue(),
formulario.getRange("D10").getValue()]];

datos.getRange(INT_R, 1, 1, 6).setValues(valores1);
SpreadsheetApp.getUi().alert('Datos actualizados');

Limpiar(); // Ejecución de función para limpieza de celdas


}
}
}

// Eliminar
function Eliminar() {
var hojaActiva = SpreadsheetApp.getActiveSpreadsheet();
var formulario = hojaActiva.getSheetByName("Formulario"); // Nombre de
hoja del formulario
var datos = hojaActiva.getSheetByName("Datos"); // Nombre de hoja donde se
almacenan datos

var interface = SpreadsheetApp.getUi();


var respuesta = interface.alert('¿Está seguro de
borrar?',interface.ButtonSet.YES_NO);

// Proceso si el usuario responde


if (respuesta == interface.Button.YES) {

var valor = formulario.getRange("B3").getValue();


var valores =
hojaActiva.getSheetByName("Datos").getDataRange().getValues(); // Nombre de
hoja donde se almacenan datos
for (var i = 0; i< valores.length; i++) {
var fila = valores[i];
if (fila[NUM_COLUMNA_BUSQUEDA] == valor) {
var INT_R = i+1

datos.deleteRow(INT_R);
Limpiar(); // Ejecución de función para limpieza de celdas
}
}
}
}

Obtención URL de archivos

function VincularArchivos() {

var sheet = SpreadsheetApp.getActive().getActiveSheet();

var folder = DriveApp.getFolderById('COLOCA AQUÍ LA ID DE LA CARPETA');

var files = folder.getFiles();

while (files.hasNext()) {

var file = files.next();

var fileName = file.getName();

var fileId = file.getId();

var fileUrl = file.getUrl();

var fileRow = sheet.getRange('A:A').getValues().flat().indexOf(fileName)+1;

if (fileRow > 0) {

sheet.getRange(fileRow, 2).setValue(fileUrl);

También podría gustarte