0% encontró este documento útil (0 votos)
44 vistas50 páginas

150 Apps Script Coding Exercises Traducido

Cargado por

contraste visual
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 PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
44 vistas50 páginas

150 Apps Script Coding Exercises Traducido

Cargado por

contraste visual
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 PDF, TXT o lee en línea desde Scribd

Machine Translated by Google

150 ejemplos de CÓDIGO

Google Aplicaciones Guion


Cómo escribir datos en una hoja de cálculo de Google 4

Lectura de datos desde una hoja de cálculo de Google 5

Crear un nuevo documento de Google 5

Cómo enviar un correo electrónico con GmailApp 5

Cómo agregar un evento a Google Calendar 5

Obtención de datos desde una API externa 5

Cómo crear un menú personalizado en Hojas de cálculo de Google 5

Usar Google Sheets como base de datos 6

Actualización de datos de Google Sheet en función de las condiciones 6

Cómo dar formato a celdas en hojas de cálculo de Google 6

Cómo eliminar filas duplicadas en Hojas de cálculo de Google 6

Insertar un gráfico en Hojas de cálculo de Google 7

Convertir datos de hojas de cálculo a JSON 7

Actualización por lotes de celdas de hojas de cálculo de Google 7

Cambiar el tamaño de las columnas automáticamente en Hojas de cálculo de Google 8

Buscar y reemplazar texto en Google Docs 8

Listar todos los archivos en la carpeta de Google Drive 8

Crear una nueva carpeta en Google Drive 8

Enviar un correo electrónico con un archivo adjunto desde Google Drive 8

Agregar pie de página personalizado a un documento de Google 9

Archivar correos electrónicos desde Gmail 9

Crear una copia de un documento con un nuevo nombre 9

Cómo insertar una nueva fila en Hojas de cálculo de Google después de la última fila con datos 9

Recuperar y registrar los nombres de todas las hojas de cálculo en Google Drive 9

Cómo agregar una columna de estado personalizada a Hojas de cálculo de Google en función de los valores de otra columna 10
Codificar automáticamente por colores las filas en Hojas de cálculo de Google según el valor de la celda 10
Crear y enviar por correo electrónico un PDF desde una hoja de cálculo de Google 10

Actualizar eventos de Google Calendar según datos de Hojas de cálculo de Google 11

Exportar datos de Google Sheets a un nuevo documento de Google 11

Realizar una copia de seguridad automática de hojas de cálculo de Google en otra hoja de cálculo 12
Machine Translated by Google

Configuración de reglas de validación en Hojas de cálculo de Google 12

Cómo crear un evento de Google Calendar con invitados 12

Cómo agregar una fila a una hoja de cálculo de Google desde el envío de un formulario 12

Cómo dar formato automáticamente a nuevas filas en hojas de cálculo de Google 13

Obtención y registro de datos meteorológicos 13

Eliminación masiva de filas según una condición en Hojas de cálculo de Google 13

Envío de correos electrónicos personalizados basados en datos de Hojas de cálculo de Google 13

Sincronizar datos de Hojas de cálculo de Google con Google Calendar 14

Generar un informe desde Hojas de cálculo de Google y enviarlo por correo electrónico como PDF 14

Cómo eliminar entradas duplicadas en Hojas de cálculo de Google 14

Cómo dividir una cadena en varias celdas en Hojas de cálculo de Google 15

Cómo fusionar varias hojas de cálculo de Google en una sola 15

Resaltar celdas según la fecha de caducidad 16

Agregar automáticamente una marca de tiempo a una fila al editar 16

Convertir filas de hojas de cálculo de Google en objetos JSON 16

Cómo crear una función para borrar celdas específicas en Hojas de cálculo de Google 17

Función para contar celdas no vacías en una columna específica 17

Cómo enviar un resumen diario por correo electrónico desde una hoja de cálculo de Google 17

Cambio automático del tamaño de la altura de las filas en Hojas de cálculo de Google según el contenido 17

Función para reemplazar texto en un documento de Google 18

Actualización por lotes del color de fondo de una celda en Hojas de cálculo de Google 18

Crear una lista de hipervínculos en Hojas de cálculo de Google 18

Resumir datos de varias hojas en una hoja maestra 18

Convertir índice de columna a letra en Hojas de cálculo de Google 19

Automatizar el envío de correos electrónicos en función de los cambios en los valores de las celdas 19
Extraer direcciones de correo electrónico del texto 19

Generar un generador de contraseñas aleatorias en Google Sheets 20

Eliminar filas según una condición en Hojas de cálculo de Google 20

Crear una tabla de contenido para un documento de Google 20

Actualización masiva de descripciones de eventos de Google Calendar 20

Cómo resaltar fines de semana en Hojas de cálculo de Google 21

Cómo insertar la marca de tiempo de "Última actualización" en el pie de página de Hojas de cálculo de Google 21

Copiar datos de Google Sheet a otra hoja de cálculo 21

Borrar contenido de varios rangos en Hojas de cálculo de Google 22

Crear varios eventos de Google Calendar a partir de datos de Hojas de cálculo de Google 22

Validar el formato de correo electrónico en hojas de cálculo de Google mediante expresiones regulares 22

Cambiar el tamaño de las imágenes automáticamente en Google Docs 23

Convertir un rango de hojas de cálculo de Google en una tabla HTML 23

Ordenar automáticamente los datos en Hojas de cálculo de Google cuando cambia una celda 23

Obtenga los últimos precios de criptomonedas y actualice las hojas de cálculo de Google 24

Comparar dos columnas y resaltar las discrepancias en Hojas de cálculo de Google 24


Machine Translated by Google

Ocultar automáticamente filas con valores cero en Hojas de cálculo de Google 25

Enviar un recordatorio programado por correo electrónico desde los datos de Hojas de cálculo de Google 25

Exportar datos específicos de Google Sheets a una nueva hoja 25

Validar la entrada de datos como formato de correo electrónico en Hojas de cálculo de Google 25

Registrar cambios en Hojas de cálculo de Google en una hoja independiente 26

Generar códigos QR en Google Sheets 26

Resumir las respuestas de Formularios de Google en Hojas de cálculo de Google 26

Generar automáticamente un documento a partir de los datos de Google Sheets 27

Crear y dar formato a una nueva hoja de cálculo de Google desde un script 27

Cambiar el color de la pestaña de Hojas de cálculo de Google según el valor de la celda 27

Numerar filas automáticamente en hojas de cálculo de Google 28

Eliminar filas vacías del final de las hojas de cálculo de Google 28

Convertir el rango seleccionado a mayúsculas en Hojas de cálculo de Google 28

Sincronizar datos de Hojas de cálculo de Google con una hoja secundaria 29

Generar una lista de todos los hipervínculos en Hojas de cálculo de Google 29

Crear eventos de Google Calendar a partir de un rango seleccionado en Hojas de cálculo de Google 29

Resaltar entradas duplicadas en Hojas de cálculo de Google 30

Formatear automáticamente las nuevas entradas de Hojas de cálculo de Google como moneda 30

Comparar dos hojas de cálculo de Google para ver las diferencias 30

Añadir respuestas de formularios de Google a un documento de Google 31

Borrar formato en un rango seleccionado en Hojas de cálculo de Google 31


Insertar fecha y hora actuales en una celda al editar 31

Convertir automáticamente los correos electrónicos entrantes a Google Docs 32

Crear un gráfico circular en Hojas de cálculo de Google a partir de datos 32

Enviar un mensaje de Slack personalizado desde una hoja de cálculo de Google 32

Actualizar una celda en función de los cambios en otra celda 32

Creación por lotes de eventos de Google Calendar a partir de datos de hojas de cálculo 33

Codificar por colores las celdas según la fecha de caducidad en Hojas de cálculo de Google 33

Eliminar filas automáticamente según el contenido de las celdas en Hojas de cálculo de Google 34

Convertir todas las fórmulas en valores en Hojas de cálculo de Google 34

Generar automáticamente y enviar por correo electrónico un informe de Hojas de cálculo de Google en formato PDF 34

Establecer la validación de datos para un rango en función de los valores de otra columna 35

Resaltar celdas en Hojas de cálculo de Google que contienen fórmulas 35

Agregar automáticamente eventos de Google Calendar a una hoja de cálculo de Google 35

Crear un registro de Hojas de cálculo de Google para los intentos fallidos de enviar correos electrónicos 35

Borrado por lotes de varios rangos con nombre en Hojas de cálculo de Google 36

Fusionar varios documentos de Google en un solo documento 36

Cómo dar formato automático a números negativos en rojo en Hojas de cálculo de Google 36

Extraer y resumir elementos marcados de preguntas con casilla de verificación de Formularios de Google 37

Automatizar copias de seguridad de datos en Hojas de cálculo de Google 37

Seguimiento de ediciones de celdas y marcas de tiempo en una pestaña separada de Hojas de cálculo de Google 37
Machine Translated by Google

Resumir datos seleccionados de Hojas de cálculo de Google en un correo electrónico 38

Buscar y reemplazar texto en varios documentos de Google 38

Crear una lista desplegable a partir de un rango en Hojas de cálculo de Google 38

Mover automáticamente filas de hojas de cálculo de Google a otra pestaña según el valor de la celda 39

Generar e insertar un gráfico de Google Sheets en una presentación de Google 39

Extraer todas las direcciones de correo electrónico de un hilo de Gmail 39

Crear automáticamente un calendario mensual en Hojas de cálculo de Google 40

Monitorear y registrar cambios en las celdas de Hojas de cálculo de Google a lo largo del tiempo 40

Codifique automáticamente por colores los eventos de Google Calendar en función de palabras clave 40

Crear un directorio de archivos y carpetas en Google Drive 41

Exportar gráficos de Google Sheets como imágenes 41

Sincronizar datos de Hojas de cálculo de Google con Contactos de Google 41

Ordenar automáticamente las hojas de cálculo de Google cuando se agrega una nueva fila 42

Eliminar filas duplicadas según una columna específica en Hojas de cálculo de Google 42

Insertar información meteorológica actual en hojas de cálculo de Google 42

Convertir filas de hojas de cálculo de Google en archivos de texto individuales 43

Monitorear el valor de una celda en Hojas de cálculo de Google y enviar una alerta si se modifica 43

Crear una lista de verificación en Hojas de cálculo de Google con casillas de verificación 43

Generar automáticamente eventos de Google Calendar a partir de la lista de tareas en Hojas de cálculo de Google 44

Resaltar tareas vencidas en Hojas de cálculo de Google 44

Convertir datos de hojas a JSON y registrarlos 44

Cambiar el tamaño de imágenes por lotes en Google Drive 45

Insertar fecha y hora formateadas en una celda 45

Validar direcciones de correo electrónico en una columna 45

Cerrar automáticamente los envíos de formularios de Google después de una determinada cantidad de respuestas 45

Crear un rastreador de progreso en Google Sheets 46


Generar un ID único para cada fila de Hojas de cálculo de Google 46

Extraer datos específicos de mensajes de Gmail a Hojas de cálculo de Google 47

Actualice automáticamente las hojas de cálculo de Google con los precios de las acciones 47

Archivar automáticamente mensajes de Gmail en Hojas de cálculo de Google 47

Generar automáticamente eventos de Google Calendar a partir de respuestas de formularios de Google 48

Enviar automáticamente notificaciones por correo electrónico para las respuestas de Formularios de Google 48

Crear automáticamente eventos de Google Calendar a partir de datos de Hojas de cálculo de Google 48

Seguimiento automático de cambios en hojas de cálculo de Google con historial de revisiones 49

Generar códigos QR automáticamente a partir de URL en Hojas de cálculo de Google 49

Generar automáticamente documentos de Google a partir de datos de Hojas de cálculo de Google 49

Traducir automáticamente los datos de Google Sheets 50

Generar automáticamente presentaciones de Google Slides a partir de datos de Google Sheets 50

Cómo escribir datos en una hoja de cálculo de Google


Machine Translated by Google

función writeToSheet() { var


sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
sheet.getRange("A1").setValue("¡Hola, mundo!"); }

Lectura de datos desde una hoja de cálculo de Google


función readFromSheet() { var
hoja = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var datos =
hoja.getRange("A1").getValue(); Logger.log(datos); }

Crear una nueva función de Google Doc


createGoogleDoc() { var doc =
DocumentApp.create('New Document');
doc.getBody().appendParagraph('Este es un nuevo documento.'); }

Envío de un correo electrónico con la función sendEmail()


de GmailApp
{ GmailApp.sendEmail('[email protected]', 'Correo electrónico de prueba', 'Hola, este es un correo
electrónico de prueba de Google
Apps Script.'); }

Cómo agregar un evento a Google Calendar function


addCalendarEvent() { var calendar =
CalendarApp.getDefaultCalendar(); calendar.createEvent('New
Event', new Date(), new Date()); }

Obtención de datos de una API externa function


fetchDataFromAPI() { var response
= UrlFetchApp.fetch('https://api.example.com/data');
Logger.log(response.getContentText()); }

Cómo crear un menú personalizado en Hojas de cálculo de Google


función onOpen() { var
ui = SpreadsheetApp.getUi();
ui.createMenu('Menú
personalizado') .addItem('Saluda',
'sayHello') .addToUi();
Machine Translated by Google

} función decirHola() {

SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange('B1').setValue('¡Hola!'); }

Usar Hojas de cálculo de Google como base de datos


function logData()
{ var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var rowContents = ['John', 'Doe', new Date()];
sheet.appendRow(rowContents); }

Actualización de datos de Google Sheet en función de las condiciones


función updateCells()
{ var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var range = sheet.getRange('A1:A10');
var values = range.getValues();
para (var i = 0; i < values.length; i++)
{ si (values[i][0] === 'Hecho')
{ sheet.getRange(i + 1, 2).setValue('Completado'); } } }

Cómo dar formato a celdas en hojas de cálculo de Google


función formatCells()
{ var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var range = sheet.getRange('B1:B5');
range.setBackground('amarillo');
range.setFontWeight('negrita'); }

Eliminar filas duplicadas en Hojas de cálculo de Google function


removeDuplicates() { var sheet
= SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var data =
sheet.getDataRange().getValues(); var newData
= []; var unique =
{}; for (var i = 0;
i < data.length; i++) { var row =
data[i]; var key =
row.join("­"); // Crea una clave de cadena única para la comparación
Machine Translated by Google

if (!unique[key])
{ unique[key] = true;
newData.push(row); } }

sheet.clearContents(); // Limpiar los datos antiguos


sheet.getRange(1, 1, newData.length, newData[0].length).setValues(newData); // Establecer nuevos datos

Insertar un gráfico en Hojas de cálculo de Google


función insertChart() { var
sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var range =
sheet.getRange('A1:B10'); // Seleccionar el rango de datos para el gráfico var chart =

sheet.newChart() .setChartType(Charts.ChartType.LINE) .addRange(range) .setPosition(5, 5, 0, 0) .build(); sheet.insertChart(chart)

Convertir datos de una hoja de cálculo a JSON function


convertSheetToJson() { var sheet =
SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var range = sheet.getDataRange();
var values = range.getValues(); var keys =
values.shift(); // Primera fila como claves
var json = []; for (var i = 0; i < values.length; i++) { var
row = {}; for
(var j = 0; j < keys.length; j++) { row[keys[j]] =
values[i][j]; }
json.push(row); }

Registrador.log(JSON.stringify(json)); }

Función de actualización por lotes de celdas de hojas de cálculo


de Google batchUpdateCells() { var
sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var rangeList =
sheet.getRangeList(['A1', 'B2', 'C3']); // Lista de direcciones de celdas rangeList.setValue('Updated');
Machine Translated by Google

Cambiar el tamaño de las columnas automáticamente en Hojas de cálculo


de Google function autoResizeColumns()
{ var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
sheet.autoResizeColumns(1, sheet.getLastColumn()); // Cambiar el tamaño de todas las columnas
automáticamente }

Buscar y reemplazar texto en Google Docs function findAndReplaceText()


{ var doc =
DocumentApp.getActiveDocument(); var body =
doc.getBody();
body.replaceText('oldText', 'newText'); }

Listar todos los archivos en la carpeta de Google Drive


función listFilesInFolder() { var
folderId = 'your­folder­id­here'; // Reemplazar con el ID de su carpeta var files =
DriveApp.getFolderById(folderId).getFiles(); while (files.hasNext())
{ var file = files.next();
Logger.log(file.getName()); } }

Crear una nueva carpeta en Google Drive


función createNewFolder() { var
newFolder = DriveApp.createFolder('Nueva carpeta');
Logger.log('Carpeta creada con ID: ' + newFolder.getId()); }

Enviar un correo electrónico con un archivo adjunto desde Google Drive


function sendEmailWithAttachment() { var file =
DriveApp.getFileById('your­file­id­here'); // Reemplazar con el ID de archivo

GmailApp.sendEmail( '[email protected]', 'Correo electrónico con archivo adjunto',


'Busque el archivo adjunto.', { attacheds:
[file.getAs(MimeType.PDF)], // Cambiar MimeType según sea necesario name: 'Script de correo electrónico automático' }
Machine Translated by Google

); }

Agregar pie de página personalizado a Google Doc


function addCustomFooter() { var
doc = DocumentApp.getActiveDocument(); var
footer = doc.addFooter(); // Agregar un pie de página si no existe
var paragraph = footer.appendParagraph('Documento confidencial: solo para uso interno');

paragraph.setAlignment(DocumentApp.HorizontalAlignment.CENTER); }

Archivar correos electrónicos desde Gmail


function archiveReadEmails() { var
threads = GmailApp.getInboxThreads(); for (var
i = 0; i < threads.length; i++) { if
(threads[i].isUnread() === false)
{ threads[i].moveToArchive(); } } }

Crear una copia de un documento con un nuevo nombre


función createDocumentCopy() { var
originalDocId = 'original­doc­id'; // Reemplazar con el ID del documento original var
originalDoc = DriveApp.getFileById(originalDocId); var copy
= originalDoc.makeCopy('Nueva copia del documento');
Logger.log('ID del documento copiado:' + copy.getId()); }

Cómo insertar una nueva fila en Hojas de cálculo de Google después de la última
fila con datos
función insertNewRow() { var
sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var lastRow
= sheet.getLastRow();
sheet.insertRowAfter(lastRow);
sheet.getRange(lastRow + 1, 1).setValue('Nuevos datos'); }

Recuperar y registrar los nombres de todas las hojas de cálculo en


Unidad de Google
Machine Translated by Google

función logAllSpreadsheets() { var


archivos = DriveApp.getFilesByType(MimeType.GOOGLE_SHEETS); mientras
(archivos.hasNext()) { var
archivo = archivos.next();
Logger.log(archivo.getName()); } }

Agregar una columna de estado personalizada a Hojas de cálculo de Google en función de


Los valores de otra columna

función addStatusColumn() { var


sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var range =
sheet.getRange("A2:A"); // Suponiendo que la columna A contiene datos para verificar var values
= range.getValues(); for (var i = 0; i
< values.length; i++) { if (values[i][0] ===
'Completado') { sheet.getRange(i + 2,
2).setValue('Hecho'); } else { sheet.getRange(i +
2,
2).setValue('En progreso'); } } }

Codificar automáticamente por colores las filas en Hojas de cálculo de Google según el valor de la
celda

función colorCodeRows() { var


sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var range =
sheet.getDataRange(); // Seleccionar todas las celdas usadas var
values = range.getValues(); for (var
i = 0; i < values.length; i++) { var row =
sheet.getRange(i + 1, 1, 1, sheet.getLastColumn()); if (values[i][0] ===
'Prioridad alta') { row.setBackground('rojo'); }
else if (values[i][0] ===
'Prioridad media') { row.setBackground('amarillo'); }
else if (values[i][0] === 'Prioridad
baja') { row.setBackground('verde'); } } }

Crear y enviar por correo electrónico un PDF desde una hoja de cálculo de Google
función emailSheetAsPDF() {
Machine Translated by Google

var sheet = SpreadsheetApp.getActiveSpreadsheet(); var sheetId =


sheet.getActiveSheet().getSheetId(); var url = 'https://
docs.google.com/spreadsheets/d/' + sheet.getId() + '/export?format=pdf&gid=' +
sheetId; var options = { headers: { 'Autorización':
'Portador '

+ ScriptApp.getOAuthToken() } }; var

response = UrlFetchApp.fetch(url, options); var blob =


response.getBlob().setName(sheet.getName() + '.pdf');
GmailApp.sendEmail('[email protected]', 'Hoja PDF', 'Buscar el PDF adjunto.', { archivos adjuntos:
[blob] }); }

Actualizar eventos de Google Calendar según hojas de cálculo de Google


Datos
function updateCalendarEvents() { var sheet
= SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var dataRange =
sheet.getDataRange(); var data =
dataRange.getValues(); var calendar =
CalendarApp.getCalendarById('your­calendar­[email protected]'); // Reemplazar con su ID de calendario
for (var i = 1; i < data.length; i++) { //
Comenzando desde la fila 2 para omitir los encabezados var eventId = data[i][0]; //
Suponiendo que el ID del evento está en la primera columna var newTitle = data[i][1]; //
Suponiendo que el nuevo título está en la segunda columna var event =
calendar.getEventById(eventId); if (event)

{ event.setTitle(newTitle); } } }

Exportar datos de Google Sheets a un nuevo documento de Google


función exportDataToDoc() { var
sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var values =
sheet.getDataRange().getValues(); var doc =
DocumentApp.create('Documento de datos exportados'); var body =
doc.getBody();
values.forEach(function(row) { var line
= row.join(' \t '); // Valores separados por tabulaciones
body.appendParagraph(line); });
Machine Translated by Google

Realizar una copia de seguridad automática de hojas de cálculo de Google en otra hoja de

cálculo function
backupSheet() { var sourceSheet
= SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var sourceData =
sourceSheet.getDataRange().getValues(); var backupSpreadsheet =
SpreadsheetApp.openById('your­backup­spreadsheet­id'); // Reemplazar con el ID de la hoja de cálculo de
respaldo var backupSheet =
backupSpreadsheet.getSheetByName('Backup') || backupSpreadsheet.insertSheet('Backup');
backupSheet.clear(); // Borrar los datos existentes
backupSheet.getRange(1, 1, sourceData.length,
sourceData[0].length).setValues(sourceData); }

Configuración de reglas de validación en Hojas de cálculo de Google


función setValidationRules() { var
sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var range =
sheet.getRange("B1:B10"); // Especificar el rango para la validación // Crear la regla de
validación de datos var rule =
SpreadsheetApp.newDataValidation() .requireValueInList(['Yes',
'No'],

true) .setAllowInvalid(false) .setHelpText('Seleccionar Sí o No') .build(); range.setDataValidation(rule); }

Cómo crear un evento de Google Calendar con invitados


función createCalendarEventWithGuests() { var calendar
= CalendarApp.getDefaultCalendar(); var startTime = new Date();
var endTime = new
Date(startTime.getTime() + 3600000); // Agrega 1 hora var options = { guests:

'[email protected],[email protected]', sendInvites: true };

calendar.createEvent('Reunión con invitados', startTime, endTime, options); }

Cómo agregar una fila a una hoja de cálculo de Google desde un formulario
Envío
Machine Translated by Google

función appendRowFromForm() { var


formResponse = ['John Doe', '[email protected]', 'Feedback']; // Simular la respuesta del formulario
var sheet =
SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); sheet.appendRow(formResponse); }

Dar formato automáticamente a nuevas filas en Hojas de cálculo de Google function formatNewRows()
{ var sheet =
SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var lastRow = sheet.getLastRow();
var range = sheet.getRange(lastRow, 1, 1,
3); // Ajustar la longitud de la columna según sea necesario // Establecer el color de fondo y la alineación
del texto para la nueva fila range.setBackground('#ffffcc').setHorizontalAlignment('center'); }

Obtención y registro de datos meteorológicos


función fetchWeatherData() { var
response =
UrlFetchApp.fetch('http://api.openweathermap.org/data/2.5/weather?q=London&appid= your_api_key'); //
Reemplace 'your_api_key' con su clave API real var weatherData =
JSON.parse(response.getContentText()); Logger.log(weatherData.main.temp); //
Registra la temperatura }

Eliminación masiva de filas según la condición en Google


Hojas
función bulkRemoveRows() { var
sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var data =
sheet.getDataRange().getValues(); for (var i = data.length
­ 1; i >= 0; i­­) { if (data[i][0] === 'Eliminar') { //
Verificar la primera columna para 'Eliminar' sheet.deleteRow(i + 1); } } }

Envío de correos electrónicos personalizados basados en datos de Hojas de cálculo de Google


función sendCustomEmails() { var sheet
= SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var range =
sheet.getDataRange(); var data =
range.getValues(); para (var i = 1; i <
data.length; i++) { // Omitir fila de encabezado
Machine Translated by Google

var emailAddress = data[i][1]; // Suponiendo que las direcciones de correo electrónico están en la segunda
columna var message = 'Estimado ' + data[i][0] + ', su mensaje personalizado aquí.'; // Suponiendo que los
nombres están en la
primera columna var subject = 'Su asunto
personalizado'; GmailApp.sendEmail(emailAddress, subject,

message); } }

Sincronizar datos de Google Sheets con Google Calendar function syncSheetWithCalendar()


{ var sheet =
SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var eventsRange =
sheet.getRange("A2:C10"); // Ajuste el rango a los detalles de su evento var events =
eventsRange.getValues(); var calendar =
CalendarApp.getDefaultCalendar(); events.forEach(function(event)
{ var title = event[0]; var startTime = new
Date(event[1]); var
endTime = new Date(event[2]);
calendar.createEvent(title, startTime,
endTime); }); }

Generar un informe desde Hojas de cálculo de Google y enviarlo por correo electrónico
como PDF
función generateAndEmailReport() { var sheet
= SpreadsheetApp.getActiveSpreadsheet(); var sheetId =
sheet.getId(); var sheetName =
sheet.getName(); var pdfUrl = "https://
docs.google.com/spreadsheets/d/" + sheetId + "/export?exportFormat=pdf&format=pdf";
var options = { headers: { 'Autorización': 'Portador '

+ ScriptApp.getOAuthToken() } }; var

response = UrlFetchApp.fetch(pdfUrl, options); var blob =


response.getBlob().setName(sheetName + '.pdf');
GmailApp.sendEmail("[email protected]", "Informe mensual", "Encuentre el informe adjunto.",
{ archivos adjuntos:
[blob], }); }

Cómo eliminar entradas duplicadas en Hojas de cálculo de Google


Machine Translated by Google

function removeDuplicates() { var


sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var data =
sheet.getDataRange().getValues(); var unique =
{}; var
uniqueRows = []; for
(var i = 0; i < data.length; i++) { var
row = data[i]; var
key = row.join("|"); // Crea una clave única a partir de los valores de fila
if (!unique[key])
{ unique[key] = true;
uniqueRows.push(row); } }

sheet.clearContents(); // Limpia los datos


antiguos sheet.getRange(1, 1,
uniqueRows.length, uniqueRows[0].length).setValues(uniqueRows); //
Establece los datos únicos }

Cómo dividir una cadena en varias celdas en Hojas de cálculo de Google function
splitStringIntoCells() { var sheet
= SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var range =
sheet.getRange("A1"); // Suponiendo que la cadena que se va a dividir está en A1
var stringValue = range.getValue();
var splitValues = stringValue.split(",); // Dividir por coma, cambiar el delimitador según sea
necesario // Establecer los valores
divididos comenzando desde B1 for (var i =
0; i < splitValues.length; i++) { sheet.getRange(1, i +

2).setValue(splitValues[i]); } }

Cómo fusionar varias hojas de cálculo de Google en una sola


función mergeSheets() { var
destinationSpreadsheet = SpreadsheetApp.getActiveSpreadsheet(); var
destinationSheet = destinationSpreadsheet.getSheetByName('Fusionada') ||
destinationSpreadsheet.insertSheet('Fusionada');
var spreadsheets = ['spreadsheetId1', 'spreadsheetId2']; // Agregar los identificadores de
las hojas de cálculo para (var i = 0; i <
spreadsheets.length; i++) { var sheet =
SpreadsheetApp.openById(spreadsheets[i]).getActiveSheet();
var data = sheet.getDataRange().getValues();

destinationSheet.getRange(destinationSheet.getLastRow() + 1, 1, data.length, data[0].length).setValues(data); } }


Machine Translated by Google

Resaltar celdas según la fecha de caducidad


function highlightExpiryDates() { var
sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var range =
sheet.getDataRange(); // Seleccione el rango donde se almacenan las fechas de vencimiento var values =
range.getValues(); for (var i = 0; i <
values.length; i++) { var expiryDate = new
Date(values[i][1]); // Suponiendo que las fechas de vencimiento están en la segunda columna

var today = new Date(); if


(expiryDate < today)
{ sheet.getRange(i + 1, 2).setBackground('red'); // Resaltar los elementos vencidos } } }

Agregar automáticamente una marca de tiempo a una fila al editar


función onEdit(e) { var
range = e.range; var sheet
= range.getSheet(); if (sheet.getName()
=== 'Sheet1' && range.getColumn() == 1 && e.value) { // Verificar si la edición está en la columna A de Sheet1
var timestampCell =
sheet.getRange(range.getRow(), 2); // Establecer la marca de tiempo en la columna B timestampCell.setValue(new
Date()); } }

Convertir filas de hojas de cálculo de Google en objetos JSON


función convertRowsToJson() { var sheet
= SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var range =
sheet.getDataRange(); var values =
range.getValues(); var headers =
values.shift(); // Eliminar la primera fila con encabezados var jsonObjects = []; for
(var i = 0; i < values.length;
i++) { var jsonObject = {}; for (var j = 0; j <
headers.length; j++)
{ jsonObject[headers[j]] = values[i][j]; }
jsonObjects.push(jsonObject); }

Registrador.log(JSON.stringify(jsonObjects)); }
Machine Translated by Google

Cómo crear una función para borrar celdas específicas en Google


Hojas
función clearSpecificCells()
{ var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var
cellsToClear = ['B2', 'C4', 'D6']; // Especifica las celdas que se
borrarán cellsToClear.forEach(function(cellAddress)
{ sheet.getRange(cellAddress).clearContent(); }); }

Función para contar celdas no vacías en una columna específica


función countNonEmptyCells() { var
sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var
column = sheet.getRange('A:A'); // Especifica la columna a contar var
values = column.getValues(); var
count = 0;
values.forEach(function(row) { if
(row[0]) count++; });

Logger.log('Celdas no vacías: ' + count); }

Cómo enviar un correo electrónico con un resumen diario desde una hoja de cálculo
de Google function
sendDailyDigest() { var sheet =

SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var dataRange =

sheet.getDataRange(); var data = dataRange.getValues(); var message = '';


data.forEach(function(row, index) { if (index > 0) { // Omitir la fila del encabezado message += row.join(', ') + '\n'; //

Cambio automático del tamaño de la altura de fila en Hojas de cálculo de Google según
Contenido
función autoResizeRowHeight() { var
hoja = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var rango
= hoja.getDataRange(); var numRows
= rango.getNumRows();
Machine Translated by Google

para (var i = 1; i <= numRows; i++)


{ hoja.autoResizeRow(i); } }

Función para reemplazar texto en un documento de Google


función replaceTextInDoc() { var doc
= DocumentApp.getActiveDocument(); var body =
doc.getBody();
body.replaceText('oldText', 'newText'); // Reemplazar 'oldText' con 'newText' }

Actualización por lotes del color de fondo de las celdas en Hojas de cálculo de Google function
batchUpdateCellBackground() { var sheet =
SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var range =
sheet.getRange("A1:C10"); // Especifique su rango var backgrounds = []; for
(var i = 0; i < 10; i++) { //
Supongamos que hay 10 filas, por ejemplo backgrounds.push(["#FF0000",
"#00FF00", "#0000FF"]); // Rojo, verde, azul } range.setBackgrounds(backgrounds); }

Crear una lista de hipervínculos en Hojas de cálculo de Google function


createListOfHyperlinks() { var sheet =
SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var urls = [ ['Google', 'https://

www.google.com'], ['Bing', 'https://


www.bing.com'], ['DuckDuckGo', 'https://
www.duckduckgo.com']
]; // Matriz de pares [texto, hipervínculo]
var range = sheet.getRange(1, 1, urls.length, 2); // Ajusta el rango según el tamaño de las URL var formulas =

urls.map(function(url) { return ['=HYPERLINK("'


+ url[1] + '", "' + url[0] + '")']; }); range.setFormulas(formulas); }

Resumir datos de varias hojas en una hoja maestra function summaryData() { var spreadsheet =
SpreadsheetApp.getActiveSpreadsheet();
Machine Translated by Google

var summarySheet = spreadsheet.getSheetByName("Resumen") ||


spreadsheet.insertSheet("Resumen"); var
sheets = spreadsheet.getSheets(); var
summaryData = [];
sheets.forEach(function(sheet) { if
(sheet.getName() !== "Resumen") { var data =
sheet.getRange("A1:B10").getValues(); // Ajuste su rango summaryData =
summaryData.concat(data); } }); summarySheet.getRange(1,

1,
summaryData.length, 2).setValues(summaryData); }

Convertir el índice de columna en letra en Hojas de cálculo de Google function


columnToLetter(column) { var temp, letter
= ''; while (column > 0)
{ temp = (column ­ 1) %
26; letter =
String.fromCharCode(temp + 65) + letter; column = (column ­
temp ­ 1) / 26; }

Logger.log(carta); }

Automatizar el envío de correos electrónicos en función de los cambios en los valores de las celdas
function onEditTrigger(e) { var
range = e.range; var
sheet = range.getSheet(); if
(sheet.getName() === "Emails" && range.getColumn() == 2 &&
e.value.toLowerCase() === 'yes') { // Verificar si la edición está en la columna y hoja correctas var
emailAddress = sheet.getRange(range.getRow(), 1).getValue(); // Suponiendo que las direcciones de correo
electrónico están en la primera columna
GmailApp.sendEmail(emailAddress, 'Notification', 'Su mensaje personalizado aquí.'); } }

Extraer direcciones de correo electrónico del texto

función extractEmails() { var


text = 'Su texto largo con [email protected] en algún punto intermedio'; var regex = /[a­zA­
Z0­9._­]+@[a­zA­Z0­9.­]+\.[a­zA­Z]{2,4}/g; var emails = text.match(regex);
Logger.log(emails); }
Machine Translated by Google

Generar un generador de contraseñas aleatorias en Google


Hojas
función generateRandomPassword() { var length
= 12; // Define la longitud de la contraseña var charset =

"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; var password = ''; for


(var i = 0; i < length; i+
+) { var randomIndex =
Math.floor(Math.random() * charset.length); password +=
charset.charAt(randomIndex); }

Logger.log(contraseña); }

Eliminar filas según una condición en Hojas de cálculo de Google


function deleteRowsBasedOnCondition() { var sheet =
SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var lastRow = sheet.getLastRow();
for (var i = lastRow; i >= 1; i­­) { var cellValue
= sheet.getRange(i, 1).getValue(); //
Verificar valores en la primera columna if (cellValue === 'Delete') { // Cambiar 'Delete' a su condición
sheet.deleteRow(i); } } }

Crear una tabla de contenido para un documento de Google


function createTableOfContents()
{ var doc = DocumentApp.getActiveDocument();
var body = doc.getBody();
var headers = body.getParagraphs().filter(function(paragraph)
{ return paragraph.getHeading() !== DocumentApp.ParagraphHeading.NORMAL; });

var toc = doc.addTable();


headers.forEach(function(heading, index)
{ toc.appendTableRow([heading.getText(), 'Page ' + (index +

1)]); }); }

Actualización masiva de descripciones de eventos de Google Calendar


función updateCalendarEventDescriptions() { var calendario
= CalendarApp.getDefaultCalendar();
Machine Translated by Google

var events = calendar.getEvents(new Date("2023­01­01"), new Date("2023­12­31")); // Especifique su


rango de fechas para (var i
= 0; i < events.length; i++) { var event =
events[i];
event.setDescription('Descripción actualizada: ' + event.getDescription()); } }

Resaltar los fines de semana en Hojas de cálculo de Google function


highlightWeekends() { var sheet =
SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var range =
sheet.getDataRange(); var numColumns
= range.getNumColumns(); var numRows =
range.getNumRows(); var dates =
range.getValues(); for (var i = 0; i <
numRows; i++) { for (var j = 0; j <
numColumns; j++) { var cellDate = dates[i]
[j]; if (cellDate instanceof
Date) { var dayOfWeek =
cellDate.getDay(); if (dayOfWeek == 0 ||
dayOfWeek == 6) { // 0 = domingo, 6 = sábado sheet.getRange(i + 1, j +
1).setBackground('#FFF2CC'); } } } } }

Cómo insertar la marca de tiempo de "Última actualización" en Hojas de cálculo de Google

Pie de página

función insertLastUpdatedTimestamp() { var


sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var footer =
"Última actualización: " + new Date();
sheet.getRange('A1').setValue(footer); // Cambie 'A1' por la celda donde desea la marca de tiempo }

Copiar datos de Google Sheet a otra hoja de cálculo function copyDataToAnotherSpreadsheet()


{ var sourceSheet =
SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var targetSpreadsheetId = 'your­
target­spreadsheet­id'; var targetSheetName = 'Sheet1'; var
sourceRange =
sourceSheet.getDataRange(); var sourceValues =
sourceRange.getValues();
Machine Translated by Google

var targetSpreadsheet = SpreadsheetApp.openById(targetSpreadsheetId); var


targetSheet = targetSpreadsheet.getSheetByName(targetSheetName);
targetSheet.getRange(1, 1, sourceValues.length,
sourceValues[0].length).setValues(sourceValues); }

Borrar contenido de varios rangos en Hojas de cálculo de Google


función clearMultipleRanges() { var
sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var
rangesToClear = ['B2:D4', 'G5:H10', 'A12:A15']; // Defina los rangos a borrar
rangesToClear.forEach(function(range)
{ sheet.getRange(range).clearContent(); }); }

Crear múltiples eventos de Google Calendar desde Google


Hojas de datos
función createMultipleCalendarEvents() { var
sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var
dataRange = sheet.getDataRange(); var
eventDetails = dataRange.getValues(); var
calendar = CalendarApp.getDefaultCalendar(); for (var i
= 1; i < eventDetails.length; i++) { // Suponiendo que la primera fila son encabezados
var [title, startDate, endDate] = eventDetails[i];
calendar.createEvent(title, new Date(startDate), new Date(endDate)); } }

Validar el formato de correo electrónico en Hojas de cálculo de Google mediante


expresiones regulares function
validationEmailFormat() { var sheet =
SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var range =
sheet.getRange("A1:A10"); //
Ajustar el rango según corresponda var values = range.getValues(); var regexPattern = /
^[^\s@]+@[^\s@]+\.[^\s@]+$/; // Patrón
de validación de correo electrónico
simple for (var i = 0; i < values.length; i++) { if (!regexPattern.test(values[i][0]))

{ sheet.getRange(i + 1, 2).setValue("Invalid"); //

Marcar como no válido en la siguiente columna } else { sheet.getRange(i + 1, 2).setValue("Valid"); } } }


Machine Translated by Google

Cambiar el tamaño de las imágenes automáticamente en Google Docs


función resizeImagesInDoc() { var doc
= DocumentApp.getActiveDocument(); var cuerpo =
doc.getBody(); var imágenes =
cuerpo.getImages();
imágenes.forEach(función(imagen) { var
ancho = imagen.getWidth(); var alto
= imagen.getHeight(); var nuevoWidth
= 200; // Establezca el ancho deseado var scaleFactor
= nuevoWidth / ancho;
imagen.setWidth(nuevoWidth);
imagen.setHeight(alto * scaleFactor); }); }

Convertir un rango de hojas de cálculo de Google en una tabla HTML


función convertRangeToHtmlTable() { var sheet
= SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var range =
sheet.getDataRange(); var values =
range.getValues(); var htmlTable =
"<table><tr>"; // Agregar encabezados

values[0].forEach(function(header) { htmlTable
+= "<th>" + header + "</th>"; }); htmlTable += "</

tr>"; // Agregar datos de


fila para (var i = 1;
i < values.length; i++) { htmlTable += "<tr>";
values[i].forEach(function(cell)
{ htmlTable += "<td>" + cell + "</td>"; });
htmlTable += "</tr>"; } htmlTable += "</

table>";

Logger.log(htmlTable); }

Ordenar automáticamente los datos en Hojas de cálculo de Google cuando una celda
Cambios
función onEdit(e) { var
rango = e.range; var hoja
= range.getSheet();
Machine Translated by Google

if (sheet.getName() === 'SortSheet' && range.getColumn() == 1) { // Cambie 'SortSheet' por el


nombre de su hoja var dataRange =
sheet.getRange("A2:B10"); // Cambie al rango que desea ordenar dataRange.sort({column: 1, ascending:
true}); // Ordene por la primera columna en orden ascendente } }

Obtenga los últimos precios de criptomonedas y actualice Google


Hojas
función updateCryptoPrices() { var
apiURL = 'https://
api.coingecko.com/api/v3/simple/price?ids=bitcoin,ethereum&vs_currencies=usd '; var respuesta =

UrlFetchApp.fetch(apiURL); var json =


JSON.parse(response.getContentText()); var hoja =
SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
hoja.getRange('A1').setValue('Bitcoin');
hoja.getRange('A2').setValue('Ethereum');
hoja.getRange('B1').setValue(json.bitcoin.usd);
hoja.getRange('B2').setValue(json.ethereum.usd); }

Comparar dos columnas y resaltar las discordancias en


Hojas de cálculo de Google
función highlightMismatches() { var sheet
= SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var range1 =
sheet.getRange("A1:A10"); // Rango de la primera columna var range2 =
sheet.getRange("B1:B10"); // Rango de la segunda columna var values1 =
range1.getValues(); var values2 =
range2.getValues(); for (var i = 0; i <
values1.length; i++) { if (values1[i][0] !== values2[i]
[0]) { range1.getCell(i + 1,
1).setBackground('yellow'); range2.getCell(i + 1,
1).setBackground('yellow'); } else { range1.getCell(i + 1,

1).setBackground(null); range2.getCell(i + 1,
1).setBackground(null); } } }
Machine Translated by Google

Ocultar automáticamente filas con valores cero en Google


Hojas
función hideZeroRows() { var
sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var dataRange =
sheet.getDataRange(); var values =
dataRange.getValues(); para (var i =
values.length ­ 1; i >= 0; i­­) { si
(values[i].some(function(value) { valor de retorno === 0; }))
{ sheet.hideRows(i + 1); } de
lo
contrario { sheet.showRows(i

+ 1); } } }

Enviar un recordatorio programado por correo electrónico desde Hojas de cálculo de Google
Datos
función sendScheduledReminder() { var sheet
= SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var dataRange =
sheet.getRange("A2:B10"); // Suponiendo que A tiene fechas y B tiene direcciones de correo electrónico var
today = new
Date(); var data =
dataRange.getValues();
data.forEach(function(row) { var
date = new Date(row[0]); var email
= row[1]; if
(date.toDateString() === today.toDateString())
{ GmailApp.sendEmail(email, 'Reminder', 'Este es su recordatorio programado.'); } }); }

Exportar datos específicos de Google Sheets a una nueva hoja function


exportDataToNewSheet() { var
sourceSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var
targetSpreadsheet = SpreadsheetApp.create('Nueva hoja de cálculo para
exportar'); var targetSheet =
targetSpreadsheet.getActiveSheet(); var dataRange =
sourceSheet.getRange("A1:C10"); //
Ajuste el rango según sea necesario var data = dataRange.getValues();
targetSheet.getRange(1, 1, data.length, data[0].length).setValues(data); }

Validar la entrada de datos como formato de correo electrónico en Hojas de cálculo de Google
Machine Translated by Google

función validarEmailEntry() { var sheet


= SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var range =
sheet.getRange("B1:B10"); // Ajuste el rango según sus necesidades var rule =
SpreadsheetApp.newDataValidation().requireTextIsEmail().build(); range.setDataValidation(rule); }

Registrar cambios en Hojas de cálculo de Google en una hoja independiente function logChanges(e)
{ var range = e.range; var sheet
= range.getSheet(); var
logSheet =
sheet.getParent().getSheetByName('Registro de cambios') ||
sheet.getParent().insertSheet('Registro de cambios'); var
oldValue = e.oldValue || 'Ninguno'; var
newValue = e.value || 'Ninguno'; var
timestamp = new Date(); var user =
Session.getActiveUser().getEmail();
logSheet.appendRow([timestamp, user, range.getA1Notation(), oldValue, newValue]); }

Generar códigos QR en Google Sheets


function generateQRCodes() { var
sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var dataRange =
sheet.getRange("A2:A"); // Ajuste el rango según dónde se encuentren sus datos var values =

dataRange.getValues(); for (var i = 0; i <


values.length; i++) { var data = values[i][0]; if
(data) { var url = "https://

chart.googleapis.com/chart?cht=qr&chl=" + encodeURIComponent(data) +
"&chs=100x100"; sheet.getRange(i + 2, 2).setValue(url); //
Suponiendo que desea los enlaces de códigos QR en la segunda columna } } }

Resumir las respuestas de Formularios de Google en Hojas de cálculo de Google


función summaryFormResponses() { var sheet =
SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Respuestas del formulario 1'); // Cambie
el nombre de la hoja de respuestas del formulario var dataRange =
sheet.getDataRange(); var responses =
dataRange.getValues(); var summary = {};
Machine Translated by Google

// Suponiendo que la primera fila son


encabezados, omítala for (var i = 1; i <
responses.length; i++) { var
response = responses[i]; for (var j = 0; j <
response.length; j++) { var question =
responses[0][j]; var answer =
response[j]; summary[question] = summary[question] ||
{}; summary[question][answer] = (summary[question][answer] || 0) + 1; } }

// Resumen del registro para revisión o procesamiento


posterior
Logger.log(summary); }

Generar automáticamente un documento a partir de los datos de Google Sheets


función generateDocumentFromSheetData() { var sheet =
SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var data =
sheet.getRange("A1:B1").getValues(); // Ajuste el rango según sea necesario var doc =
DocumentApp.create('Documento generado a partir de la hoja'); var body =
doc.getBody();
data.forEach(function(row)
{ body.appendParagraph(row[0] + ': ' + row[1]); // Suponiendo pares clave­valor en cada fila });

Logger.log('Documento creado con ID: ' + doc.getId()); }

Crear y dar formato a una nueva hoja de cálculo de Google desde un script
function createAndFormatSheet() { var
newSheetName = 'Informe mensual'; // Cambie según sea necesario var
spreadsheet = SpreadsheetApp.create(newSheetName); var sheet =
spreadsheet.getActiveSheet(); // Configurar la fila del
encabezado var headers
= ['Fecha', 'Categoría', 'Cantidad']; var headerRange
= sheet.getRange("A1:C1"); headerRange.setValues([headers]);
headerRange.setFontWeight('bold');
sheet.setColumnWidths(1, 3, 150); //
Establecer los anchos para las primeras tres columnas Logger.log('Hoja de cálculo creada
'
con el nombre: + newSheetName); }

Cambiar el color de la pestaña de Hojas de cálculo de Google según el valor de la celda


función updateTabColorBasedOnValue() { var hoja =
SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
Machine Translated by Google

var status = sheet.getRange('A1').getValue(); // Suponiendo que el estado está en


A1 if (status === 'Complete')
{ sheet.setTabColor('green'); }
else if (status === 'In Progress')
{ sheet.setTabColor('yellow'); }
else
{ sheet.setTabColor(null); // Eliminar color si el estado no es ninguno

de los dos } }

Numerar filas automáticamente en hojas de cálculo de Google


function autoNumberRows() { var
sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var range =
sheet.getDataRange(); // Obtener el rango de datos var values
= range.getValues(); for (var i = 0; i
< values.length; i++) { values[i][0] = i + 1; //
Suponiendo que el número de fila debe ir en la primera columna } range.setValues(values); }

Eliminar filas vacías del final de las hojas de cálculo de Google


función removeEmptyRows() { var
sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var lastRow =
sheet.getLastRow(); var lastColumn =
sheet.getLastColumn(); var range =
sheet.getRange(lastRow, 1, 1, lastColumn); var values =
range.getValues(); mientras
(values[0].every(función(valor) { valor de retorno === ""; }))
{ sheet.deleteRow(lastRow);
lastRow­­;
range = sheet.getRange(lastRow, 1, 1, lastColumn); values
= range.getValues(); } }

Convertir el rango seleccionado a mayúsculas en Hojas de cálculo de Google


función convertRangeToUppercase() { var
sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var range =
sheet.getActiveRange(); // Obtener el rango seleccionado actual var values =
range.getValues(); var newValues
= values.map(function(row) { return
row.map(function(cell) { return
typeof cell === 'string' ? cell.toUpperCase() : cell;
Machine Translated by Google

}); }); rango.setValues(nuevosValores); }

Sincronizar datos de Hojas de cálculo de Google con una hoja secundaria


function syncSheets() { var
primarySheet =
SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Primary"); var
secondarySheet =
SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Secondary"); var data =
primarySheet.getDataRange().getValues(); secondarySheet.clear(); //
Borrar datos existentes secondarySheet.getRange(1, 1,
data.length, data[0].length).setValues(data); // Copiar datos a la hoja secundaria }

Generar una lista de todos los hipervínculos en Hojas de cálculo de Google function
listAllHyperlinks() { var sheet =
SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var range =
sheet.getDataRange(); var formulas =
range.getFormulas(); var links = []; for (var i
= 0; i <
formulas.length; i++) { for (var j = 0; j <
formulas[i].length; j++) { var cellFormula =
formulas[i][j]; if
(cellFormula.startsWith('=HYPERLINK'))
{ links.push(cellFormula); } } }

Logger.log(enlaces); }

Crear eventos de Google Calendar a partir del rango seleccionado en


Hojas de cálculo de Google

función createEventsFromRange() { var sheet


= SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var range =
sheet.getActiveRange(); // Obtener el rango seleccionado actual var values =
range.getValues(); var calendar =
CalendarApp.getDefaultCalendar(); values.forEach(function(row)
{ var title = row[0]; var startTime =
new Date(row[1]);
Machine Translated by Google

var horafinal = nueva fecha(fila[2]);


calendario.createEvent(título, hora de inicio, hora de

finalización); }); }

Resaltar entradas duplicadas en Hojas de cálculo de Google


función resaltarDuplicados() { var hoja =
SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var rango = hoja.getDataRange();
var valores = rango.getValues(); var duplicados
= []; valores.forEach(función(fila, índicefila)
{ fila.forEach(función(celda,
índicecolumna) { si (valores.slice(índicefila + 1).some(r
=> r[índicecolumna] === celda))
{ duplicados.push([índicefila + 1, índicecolumna + 1]); } }); });
duplicados.forEach(función(posicióncelda)

{ hoja.getRange(posicióncelda[0],
posicióncelda[1]).setBackground('rojo'); }); }

Formatear automáticamente nuevas entradas de Hojas de cálculo de Google como


Divisa
función formatAsCurrency() { var sheet
= SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var range =
sheet.getRange("B1:B"); // Suponiendo que la columna B debe estar en formato de moneda

range.setNumberFormat("$#,##0.00"); }

Comparar dos hojas de cálculo de Google para encontrar diferencias function


compareSheets() { var ss =
SpreadsheetApp.getActiveSpreadsheet(); var sheet1 =
ss.getSheetByName("Sheet1"); var sheet2 =
ss.getSheetByName("Sheet2"); var range1 =
sheet1.getDataRange(); var range2 =
sheet2.getDataRange(); var values1 =
range1.getValues(); var values2 =
range2.getValues(); var maxRows =
Math.max(values1.length, values2.length); var maxCols =
Math.max(values1[0].length, values2[0].length); for (var i = 0; i < maxRows; i++) {
Machine Translated by Google

para (var j = 0; j < maxCols; j++) { var


valor1 = (valores1[i] && valores1[i][j]) || ""; var valor2 =
(valores2[i] && valores2[i][j]) || ""; si (valor1 !== valor2)
{ // Resaltar las diferencias
en la Hoja1 si (hoja1.getLastRow() >= i +
1 && hoja1.getLastColumn() >= j + 1) { hoja1.getRange(i + 1, j + 1).setBackground('yellow'); }

// Resaltar las diferencias en la Hoja2 si


(sheet2.getLastRow() >= i + 1 && sheet2.getLastColumn() >= j + 1) { sheet2.getRange(i +
1, j + 1).setBackground('yellow'); } } } } }

Añadir respuestas de formularios de Google a una función de Google Doc


appendFormResponsesToDoc() { var formResponses
= FormApp.getActiveForm().getResponses(); var doc = DocumentApp.openById('your­
document­id'); // Reemplazar con su ID de Google Doc var body = doc.getBody();

formResponses.forEach(function(response) { var
itemResponses = response.getItemResponses();
itemResponses.forEach(function(itemResponse)
{ body.appendParagraph(itemResponse.getItem().getTitle() + ": " +
itemResponse.getResponse()); });

body.appendHorizontalRule(); // Agrega un salto visual entre cada respuesta de formulario }); }

Borrar formato en un rango seleccionado en Hojas de cálculo de Google function clearFormatting() { var
sheet =
SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var range =
sheet.getActiveRange(); // Obtener el rango seleccionado actual range.clearFormat(); }

Insertar fecha y hora actuales en una celda al editar


función onEdit(e) { var
hoja = e.source.getActiveSheet(); var editRange
= hoja.getActiveRange();
Machine Translated by Google

var dateCell = sheet.getRange(editRange.getRow(), editRange.getLastColumn() + 1); // Suponiendo


que la fecha siempre está al lado de la celda editada
dateCell.setValue(new Date()); }

Convertir automáticamente los correos electrónicos entrantes a Google Docs


función convertEmailsToDocs() { var
threads = GmailApp.getInboxThreads(0, 5); // Obtener hasta 5 hilos de correo electrónico más
recientes threads.forEach(function(thread)
{ var messages = thread.getMessages();
messages.forEach(function(message) { var
doc = DocumentApp.create('Correo electrónico de: ' + message.getFrom());
doc.getBody().setText(message.getPlainBody()); }); }); }

Crear un gráfico circular en Hojas de cálculo de Google a partir de datos


function createPieChart() { var
sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var range =
sheet.getRange("A1:B6"); // Ajuste el rango para sus datos var chart =

sheet.newChart() .setChartType(Charts.ChartType.PIE) .addRange(range) .setPosition(5, 5, 0, 0) .build(); sheet.ins

Enviar un mensaje de Slack personalizado desde una hoja de cálculo de Google function
sendSlackMessage() { var
webhookUrl = 'your­slack­webhook­url'; // Reemplazar con la URL de tu webhook de Slack var
message = { "text":
"¡Aquí hay un mensaje de Google Sheets!" }; var

options =
{ "method": "post",
"contentType": "application/json",
"payload": JSON.stringify(message) };

UrlFetchApp.fetch(webhookUrl, options); }

Actualizar una celda en función de los cambios en otra celda


Machine Translated by Google

function onEdit(e) { var


sourceSheet = e.source.getActiveSheet(); if
(sourceSheet.getName() === 'Sheet1') { // Especifica la hoja a observar var editedCell =
sourceSheet.getActiveRange(); if (editedCell.getA1Notation()
=== 'A1') { // Verifica si la celda editada es A1 var newValue = editedCell.getValue(); var
targetCell = sourceSheet.getRange('B1'); //
Especifica la celda de destino targetCell.setValue(newValue * 2); // Acción de ejemplo,
multiplica el valor A1 por 2 } } }

Crear por lotes eventos de Google Calendar desde una hoja de cálculo
Datos
function batchCreateEvents() { var
sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var startRow = 2; //
Suponiendo que la primera fila tiene encabezados var numRows =
sheet.getLastRow() ­ 1; var dataRange =
sheet.getRange(startRow, 1, numRows, 4); // Ajusta 4 al número de columnas var data = dataRange.getValues();
var calendar
= CalendarApp.getDefaultCalendar(); for
(var i = 0; i < data.length; i++) { var row = data[i]; var title =
row[0]; // Primera columna var startTime =
new Date(row[1]); //
Segunda columna var endTime = new
Date(row[2]); // Tercera columna var options = {description:
row[3]}; // Cuarta columna para descripción
calendar.createEvent(title, startTime, endTime, options); } }

Codificar celdas por colores según la fecha de caducidad en Hojas de cálculo de Google function
colorCodeExpiryDates() { var sheet =
SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var range =
sheet.getRange("A2:B10"); // Suponiendo que la columna A tiene fechas y la columna B debe ser coloreada
var values =
range.getValues(); var today = new
Date(); for (var i = 0; i <
values.length; i++) { var expiryDate = new
Date(values[i][0]); var daysLeft = (expiryDate ­
today) / (1000 * 3600 * 24); if (daysLeft < 0) { sheet.getRange('B' + (i +

2)).setBackground('red'); // Fecha de caducidad pasada


Machine Translated by Google

} else if (daysLeft < 30)


{ sheet.getRange('B' + (i + 2)).setBackground('yellow'); // Válido pronto } else

{ sheet.getRange('B' + (i + 2)).setBackground('green'); // Válido } } }

Eliminación automática de filas según el contenido de la celda en Google


Hojas
función autoDeleteRows() { var
sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var range =
sheet.getDataRange(); var values =
range.getValues(); for (var i =
values.length ­ 1; i >= 0; i­­) { if (values[i][0] ===
"Delete") { // Suponiendo que la palabra desencadenante está en la primera columna
sheet.deleteRow(i + 1); } } }

Convertir todas las fórmulas en valores en Hojas de cálculo de Google


function convertFormulasToValues() { var sheet
= SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var range =
sheet.getDataRange(); // Seleccionar todos los datos en la hoja var values =
range.getValues(); // Obtener todos los valores, se evalúan las fórmulas
range.setValues(values); // Volver a establecer los valores evaluados, convirtiendo todas las fórmulas en
valores
estáticos }

Generar automáticamente y enviar por correo electrónico un informe de Hojas de cálculo de Google en formato PDF

función emailSheetAsPDF() { var ss =


SpreadsheetApp.getActiveSpreadsheet(); var sheet =
ss.getActiveSheet(); var sheetId =
sheet.getSheetId(); var url = 'https://
docs.google.com/spreadsheets/d/' + ss.getId() + '/export?format=pdf&gid=' +
sheetId; var response = UrlFetchApp.fetch(url,
{ headers: { 'Autorización': 'Portador '
+ ScriptApp.getOAuthToken() } }); var

blob = response.getBlob().setName(sheet.getName() + '.pdf');


GmailApp.sendEmail('[email protected]', 'Su informe de Google Sheets', 'Busque el informe adjunto.',
{ archivos adjuntos: [blob]
Machine Translated by Google

}); }

Establecer la validación de datos para un rango en función de otro


Valores de la columna
función setDataValidationBasedOnColumn() { var sheet =
SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var range =
sheet.getRange('B1:B10'); // Rango al que aplicar la validación var criteriaRange =
sheet.getRange('A1:A10'); // Rango del que tomar los criterios de validación var rule =
SpreadsheetApp.newDataValidation().requireValueInRange(criteriaRange, true).build();

range.setDataValidation(rule); }

Resaltar celdas en Hojas de cálculo de Google que contienen fórmulas


función highlightFormulas() { var
sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var range =
sheet.getDataRange(); var formulas =
range.getFormulas(); for (var i = 0; i <
formulas.length; i++) { for (var j = 0; j <
formulas[i].length; j++) { if (formulas[i][j]) { // Si la
celda contiene una fórmula sheet.getRange(i + 1, j +
1).setBackground('#FFFF00'); // Resaltar con amarillo } } } }

Agregar automáticamente eventos de Google Calendar a una cuenta de Google


Hoja
función importCalendarEvents() { var sheet
= SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var calendar =
CalendarApp.getDefaultCalendar(); var events =
* *
calendar.getEvents(new Date(), new Date(new Date().getTime() + 7 3600 * 1000)); // Obtener eventos 24
para los próximos 7 días events.forEach(function(event)
{ sheet.appendRow([event.getTitle(),
event.getStartTime(), event.getEndTime()]); }); }

Crear un registro de Hojas de cálculo de Google para los intentos fallidos de enviar correos electrónicos

función logFailedEmails() {
Machine Translated by Google

var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Registro de correo


electrónico'); var data = [['[email protected]', 'Error'], ['[email protected]', 'Éxito']]; // Datos
de muestra
data.forEach(function(row) { if
(row[1] === 'Error')
{ sheet.appendRow(row); // Registrar solo los intentos de correo

electrónico fallidos } }); }

Borrado por lotes de varios rangos con nombre en Hojas de cálculo de Google
función clearNamedRanges() { var ss
= SpreadsheetApp.getActiveSpreadsheet(); var
namedRanges = ss.getNamedRanges();
namedRanges.forEach(función(namedRange)
{ namedRange.getRange().clearContent(); // Borrar el contenido de cada rango con nombre }); }

Fusionar varios documentos de Google en un solo documento


función mergeGoogleDocs() { var
docIds = ['doc­id­1', 'doc­id­2', 'doc­id­3']; // Matriz de ID de Google Docs para fusionar var finalDoc
= DocumentApp.create('Documento fusionado');
docIds.forEach(function(id) { var
body = DocumentApp.openById(id).getBody(); var elements
= body.getParagraphs();
elements.forEach(function(element)
{ finalDoc.getBody().appendParagraph(element.copy()); });

finalDoc.getBody().appendPageBreak(); }); }

Formato automático de números negativos en rojo en Hojas de cálculo de Google function


formatNegativeNumbers() { var sheet =
SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var range =
sheet.getDataRange(); var values =
range.getValues();
values.forEach(function(row, rowIndex)
{ row.forEach(function(cell, columnIndex) { if
(typeof cell === 'number' && cell < 0)
{ sheet.getRange(rowIndex + 1, columnIndex + 1).setFontColor('red'); } });
Machine Translated by Google

}); }

Extraer y resumir elementos seleccionados de Google


Preguntas de casillas de verificación de formularios

función summaryCheckedItems() { var form =


FormApp.getActiveForm(); var formResponses =
form.getResponses(); var itemResponses =
formResponses.map(response => response.getItemResponses()); var
summary = {};

itemResponses.forEach(response =>
{ response.forEach(itemResponse => { var
answers = itemResponse.getResponse(); if
(Array.isArray(answers)) { // Verificar si la respuesta es de una pregunta de casilla de verificación
answers.forEach(answer =>
{ summary[answer] = (summary[answer] || 0) + 1; }); } }); });

Logger.log(summary); // Registrar el resumen de los elementos marcados }

Automatizar copias de seguridad de datos en Hojas de cálculo de Google


function backupSheetData() { const
sourceSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const backupSpreadsheet =
SpreadsheetApp.openById('your­backup­spreadsheet­id'); // Reemplazar con el ID de la hoja de cálculo de respaldo
const backupSheet =
backupSpreadsheet.getSheetByName('Backup') || backupSpreadsheet.insertSheet('Backup');
const data = sourceSheet.getDataRange().getValues();
backupSheet.clear(); // Borrar los datos existentes backupSheet.getRange(1,
1, data.length, data[0].length).setValues(data); // Copiar datos
nuevos }

Seguimiento de ediciones de celdas y marcas de tiempo en un Google independiente


Pestaña Hojas

función onEdit(e) { const


editSheet = e.source.getActiveSheet(); const logSheet =
e.source.getSheetByName('Editar registro') || e.source.insertSheet('Editar registro');
Machine Translated by Google

const timestamp = new Date(); const


editRange = e.range.getA1Notation(); const oldValue =
e.oldValue || 'Vacío'; const newValue = e.value
|| 'Vacío'; logSheet.appendRow([timestamp,
editSheet.getName(), editRange, oldValue, newValue]); }

Resumir datos seleccionados de Hojas de cálculo de Google en un correo electrónico function


summaryAndEmailData() { const sheet =
SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const range = sheet.getDataRange();
const values = range.getValues(); let summary
= 'Su resumen de datos:\n\n'; // Personalice
este bucle para sus necesidades de resumen
específicas values.forEach((row, index) => { summary += `Row ${index + 1}:
${row.join(', ')}\n`; });
GmailApp.sendEmail('[email protected]', 'Resumen de

datos de Hojas de cálculo de Google', summary); }

Buscar y reemplazar texto en varios documentos de Google function findAndReplaceInDocs()


{ const docsIds = ['doc­id­1', 'doc­id­2']; //
Matriz de ID de documentos const findText = 'oldText'; const replaceText =
'newText'; docsIds.forEach((id)
=> { const body =
DocumentApp.openById(id).getBody();
body.replaceText(findText, replaceText); }); }

Crear una lista desplegable a partir de un rango en Hojas de cálculo de Google function
createDropdownFromRange() { const sheet =
SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const range =
sheet.getRange('A1:A10'); // Rango para la lista desplegable const validationRule =

SpreadsheetApp.newDataValidation().requireValueInRange(range, true).build();
sheet.getRange('B1').setDataValidation(validationRule); // Celda para tener el menú desplegable }
Machine Translated by Google

Mover automáticamente filas de hojas de cálculo de Google a otra pestaña


Basado en el valor de la celda

function moveRowsBasedOnValue() { const


sourceSheet =
SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Source'); const targetSheet =

SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Target'); const rows =


sourceSheet.getDataRange().getValues(); rows.forEach((row, index) =>
{ if (row[0] === 'Move') { // Verificar si
la primera celda de la fila tiene 'Move' targetSheet.appendRow(row); // Anexar fila a la
hoja de destino sourceSheet.deleteRow(index + 1); // Eliminar fila de la hoja
de origen } }); }

Generar e insertar un gráfico de Hojas de cálculo de Google en una hoja de cálculo de Google
Deslizar

función insertChartIntoSlides() { const


sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Data'); const slides =
SlidesApp.openById('your­slides­id'); // Reemplazar con su ID de Google Slides

const slide = slides.getSlides()[0]; // Obtener la primera diapositiva


const dataRange = sheet.getRange('A1:B5'); // Ajustar el rango a los datos const chart =

sheet.newChart() .setChartType(Charts.ChartType.BAR) .addRange(dataRange) .setPosition(5, 5, 0, 0) .build(); sheet.insertChart(ch

Extraer todas las direcciones de correo electrónico de un hilo de Gmail

función extractEmailsFromThread() { const


thread = GmailApp.getInboxThreads(0, 1)[0]; // Obtener el primer hilo en tu bandeja de entrada const messages
= thread.getMessages(); const emailAddresses = [];
messages.forEach((message) =>
{ const from = message.getFrom(); const to
= message.getTo(); const cc =
message.getCc();
Machine Translated by Google

emailAddresses.push(from, to, cc); });

Logger.log(emailAddresses.join(', ')); // Registrar todas las direcciones de correo electrónico


encontradas }

Crear automáticamente un calendario mensual en Hojas de cálculo de Google


función createMonthlyCalendar() { const sheet
= SpreadsheetApp.getActiveSpreadsheet().insertSheet('Calendario mensual'); const days = ['Dom',
'Lun', 'Mar',
'Mié', 'Jue', 'Vie', 'Sáb']; const today = new Date(); const firstDay = new
Date(today.getFullYear(),
today.getMonth(), 1); const lastDay = new Date(today.getFullYear(), today.getMonth() + 1,
0); const dates = []; // Configurar el encabezado de días

sheet.getRange('A1:G1').setValues([days]).setFontWeight('bold'); // Generar fechas para


el mes for (let d = firstDay; d <= lastDay;
d.setDate(d.getDate() + 1)) { dates.push(new Date(d)); }

// Rellenar el calendario let row


= 2; for (let i =
0; i < dates.length; i++) { const column =
dates[i].getDay() + 1; sheet.getRange(row,
column).setValue(dates[i].getDate()); if (column === 7) row++; } }

Monitorear y registrar cambios en las celdas de Hojas de cálculo de Google a lo largo del tiempo
función logCellChanges(e) { const
changeLogSheet =
SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Registro de cambios') ||
SpreadsheetApp.getActiveSpreadsheet().insertSheet('Registro de cambios'); const cell =
e.range.getA1Notation(); const oldValue =
e.oldValue || 'Ninguno'; const newValue = e.value
|| 'Ninguno'; const timestamp = new Date(); //
Registrar el cambio

changeLogSheet.appendRow([timestamp, cell, oldValue, newValue]); }

Codifique automáticamente por colores los eventos de Google Calendar en función de palabras
clave
Machine Translated by Google

función colorCodeCalendarEvents() { var


calendario = CalendarApp.getDefaultCalendar(); var eventos =
*
calendario.getEvents(nueva fecha(), nueva fecha(nueva fecha().getTime() + 30 24
*
3600 * 1000)); // Próximos 30 días
events.forEach(function(event) { var title
= event.getTitle().toLowerCase(); if
(title.includes('birthday'))
{ event.setColor(CalendarApp.EventColor.PALE_BLUE); } else if
(title.includes('meeting'))
{ event.setColor(CalendarApp.EventColor.YELLOW); } else if
(title.includes('deadline'))
{ event.setColor(CalendarApp.EventColor.RED); } }); }

Crear un directorio de archivos y carpetas en Google Drive


función createDriveDirectoryListing() { var folderId
= 'your­folder­id'; // Reemplazar con el ID de su carpeta var folder =
DriveApp.getFolderById(folderId); var contents =
folder.getFiles(); var listing = [['Nombre',
'Tipo', 'URL', 'Última actualización']]; while (contents.hasNext())
{ var file = contents.next();
listing.push([file.getName(),
file.getMimeType(), file.getUrl(), file.getLastUpdated()]); } var sheet =

SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); sheet.getRange(1, 1,
listing.length, 4).setValues(listing); }

Exportar gráficos de Google Sheets como imágenes


función exportChartsAsImages() { var sheet
= SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var charts = sheet.getCharts();
charts.forEach(función(chart, índice)
{ var blob = chart.getBlob();

DriveApp.createFile(blob.setName('Chart_' + (índice + 1) + '.png')); }); }

Sincronizar datos de Hojas de cálculo de Google con Contactos de Google


función syncSheetWithContacts() { var sheet
= SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var data =
sheet.getDataRange().getValues(); // Suponiendo que la primera fila son encabezados
Machine Translated by Google

data.forEach(function(row, index) { if (index


> 0) { // Omitir fila de encabezado var
contact = ContactsApp.createContact(row[0], row[1], row[2]); // Suponiendo nombre, apellido y correo
electrónico en las columnas
contact.addPhone(ContactsApp.Field.MOBILE_PHONE, row[3]); // Suponiendo número de teléfono en la
cuarta columna } }); }

Ordenar automáticamente las hojas de cálculo de Google cuando se agrega una nueva fila

función onEdit(evento) { var


sheet = event.source.getActiveSheet(); var editedCell
= sheet.getActiveCell(); if (editedCell.getRow()
== 1 && sheet.getName() == 'YourSheetName') { // Verificar si la edición está en la primera fila y la hoja correcta
var range = sheet.getRange('A2:Z' +
sheet.getLastRow()); range.sort({column: 1, ascending: true}); // Ordenar
por primera columna, AZ } }

Eliminar filas duplicadas según una columna específica en Hojas de cálculo de Google function

removeDuplicatesBasedOnColumn() { var sheet =


SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var data =
sheet.getDataRange().getValues(); var uniqueRecords =
{}; var rowsToDelete = [];
data.forEach(function(row,
index) { if (uniqueRecords.hasOwnProperty(row[0]))
{ // Suponiendo que hay duplicados según la primera columna rowsToDelete.push(index + 1); } else

{ uniqueRecords[row[0]] = true; } });

rowsToDelete.reverse(); // Eliminar

desde abajo para evitar estropear los índices rowsToDelete.forEach(function(rowIndex)


{ sheet.deleteRow(rowIndex); }); }

Insertar información meteorológica actual en Hojas de cálculo de Google function insertCurrentWeather()


{
Machine Translated by Google

var apiKey = 'your­openweather­api­key'; // Reemplazar con su clave de API de OpenWeather var city =
'London,uk'; // Reemplazar con su ciudad var url = 'http://
api.openweathermap.org/data/2.5/weather?q=' + city + '&appid=' + apiKey + '&units=metric'; var response
= UrlFetchApp.fetch(url); var
json = JSON.parse(response.getContentText());
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
sheet.getRange('A1').setValue('Temperatura actual (°C)');
sheet.getRange('A2').setValue(json.main.temp); }

Convertir filas de hojas de cálculo de Google en archivos de texto individuales


función convertRowsToTextFiles() { var sheet
= SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var rows =
sheet.getDataRange().getValues(); rows.forEach(function(row,
index) { var text = row.join(', '); // Combina
todos los valores de celda en la fila, separados por comas var fileName = 'Row_' + (index + 1) + '.txt';
DriveApp.createFile(fileName, text); }); }

Monitorear el valor de una celda de Google Sheets y enviar una alerta si cambia function

monitorCellValue()
{ var sheet =
SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var cellToMonitor =
sheet.getRange('A1').getValue(); // Cambia 'A1' por la celda que quieres monitorear var triggerValue = 100; //
Cambia 100
por el valor que activa la alerta if (cellToMonitor > triggerValue) { MailApp.sendEmail('your­
[email protected]', 'Alerta: Valor de
celda cambiado', 'El valor de la celda A1 excede ' + triggerValue); } }

Crear una lista de verificación en Hojas de cálculo de Google con casillas de verificación
función createChecklist() { var
sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var tareas = ['Tarea 1',
'Tarea 2', 'Tarea 3']; // Reemplazar con sus tareas var range = sheet.getRange('A1:A'
+ task.length); range.setValues(tasks.map(function(task) { return
[task]; })); range.offset(0, 1).insertCheckboxes(); }
Machine Translated by Google

Generar automáticamente eventos de Google Calendar a partir de la lista de tareas en Hojas de cálculo de

Google function
generateCalendarEventsFromTasks() { var sheet =
SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var data =
sheet.getDataRange().getValues(); // Suponiendo que las tareas comienzan desde la fila 2 var calendar
= CalendarApp.getDefaultCalendar(); data.forEach(function(row,
index) { if (index > 0 && row[0] && !row[4])
{ // Suponiendo tareas en la columna A y bandera de finalización en la columna E var title = row[0]; var
startDate =
new Date(row[1]);
var endDate = new Date(row[2]); var
description = row[3]; var event =
calendar.createEvent(title,
startDate, endDate, {description: description}); sheet.getRange(index + 1, 5).setValue('Created'); // Marcar
como 'Creado' } }); }

Resaltar tareas vencidas en Hojas de cálculo de Google


función highlightOverdueTasks() { var sheet
= SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var task = sheet.getRange('A2:B'
+ sheet.getLastRow()).getValues(); // Suponiendo que las fechas de vencimiento están en la columna B
task.forEach(function(row,
i) { var dueDate = row[1]; if (dueDate
instanceof Date && dueDate
< new Date()) { sheet.getRange(i + 2, 2).setBackground('red'); // Resaltar
las tareas vencidas } }); }

Convertir datos de la hoja a JSON y registrarlos function


sheetDataToJson() { var
sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var
data = sheet.getDataRange().getValues(); var
headers = data.shift(); // Eliminar la primera fila con encabezados
var jsonData = [];
data.forEach(function(row)
{ var obj =
{}; headers.forEach(function(header,
i) { obj[header] =

row[i]; }); jsonData.push(obj);


Machine Translated by Google

}); Logger.log(JSON.stringify(jsonData)); }

Cambiar el tamaño de imágenes por lotes en Google Drive


function batchResizeImages()
{ var folder = DriveApp.getFolderById('your­folder­id'); // Reemplazar con el ID de la
carpeta var images = folder.getFilesByType(MimeType.JPEG); // Cambiar el tipo MIME según
sea necesario while
(images.hasNext()) { var
image = images.next(); var
blob = image.getBlob(); var resizedImage = ImagesService.newImage(blob).resize(100,
100).getBlob(); // Cambiar
el tamaño a 100x100 píxeles folder.createFile(resizedImage).setName('Resized_'

+ image.getName()); } }

Insertar fecha y hora formateadas en una celda


función insertFormattedDateTime() { var
sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var cell =
sheet.getRange('A1'); // Cambiar a la celda de destino var now
= new Date(); var
formattedDate = Utilities.formatDate(now, Session.getScriptTimeZone(), 'aaaa­MM­
dd HH:mm:ss');
cell.setValue(formattedDate); }

Validar direcciones de correo electrónico en una columna


función validarEmailAddresses() { var sheet =
SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var emails = sheet.getRange('A2:A'
+ sheet.getLastRow()).getValues(); // Suponiendo que hay correos electrónicos en la columna A var emailRegex
= /^[^\s@]+@[^\s@]+\.
[^\s@]+$/; emails.forEach(function(email, i) { if (!
emailRegex.test(email[0])) { sheet.getRange(i
+ 2, 1).setBackground('yellow'); // Resaltar
correos electrónicos no válidos } }); }

Cerrar automáticamente los envíos de formularios de Google después de un


Cierto número de respuestas
función closeFormAfterResponses() {
Machine Translated by Google

var form = FormApp.getActiveForm(); var


maxResponses = 100; // Establecer el número máximo de respuestas var responses =
form.getResponses().length; if (responses >=
maxResponses)
{ form.setAcceptingResponses(false).setCustomClosedFormMessage('Hemos alcanzado el número máximo de
respuestas. ¡Gracias!'); } }

Crear un rastreador de progreso en Hojas de cálculo de Google


función createProgressTracker() { var sheet
= SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var tareas = ['Tarea 1', 'Tarea
2', 'Tarea 3', 'Tarea 4']; // Tareas de ejemplo var totalTasks = task.length;
sheet.getRange('A1').setValue('Tarea');
sheet.getRange('B1').setValue('Estado');
tareas.forEach(función(tarea, índice)
{ hoja.getRange('A' + (índice +
2)).setValue(tarea); hoja.getRange('B' + (índice +
2)).setValue('=SI(C' + (índice + 2) + '="", "", SI(C' + (índice + 2) + < 100, "En progreso", "Completado"))');
'
hoja.getRange('C' + (índice +

2)).setValue('').setDataValidation(SpreadsheetApp.newDataValidation().requireNumber Between(0,
100).build()).setBackground('#dddddd'); }); hoja.setColumnWidth(3,

100); hoja.getRange('C1').setValue('Progreso
(%)'); hoja.getRange('A1:C' + (totalTasks +

1)).applyRowBanding(SpreadsheetApp.BandingTheme.LIGHT_GREY); }

Generar un ID único para cada fila de Hojas de cálculo de Google


function generateUniqueIds() { var
sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var range =
sheet.getRange('A2:A' + sheet.getLastRow()); // Suponiendo que los ID están en la columna A var values
=
range.getValues();
values.forEach(function(row, index) { if (!row[0])
{ // Si la celda de ID está vacía var
uniqueId = Utilities.getUuid(); // Generar un ID único sheet.getRange('A'
+ (index + 2)).setValue(uniqueId); } }); }
Machine Translated by Google

Extraer datos específicos de mensajes de Gmail para Google


Hojas
function extractDataFromGmail() { var sheet
= SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var threads =
GmailApp.search('subject:"Tu filtro de asunto"'); // Ajusta la consulta de búsqueda según sea necesario var
messages
= GmailApp.getMessagesForThreads(threads); messages.forEach(function(thread,
i) { thread.forEach(function(message) { var subject
= message.getSubject(); var date =
message.getDate(); var body =
message.getPlainBody(); // Extrae
información específica del cuerpo del correo
electrónico usando expresiones regulares, si es necesario sheet.appendRow([subject, date,
body]); // Ajusta según los datos que quieras extraer }); }); }

Actualice automáticamente las hojas de cálculo de Google con los precios de las acciones
función updateStockPrices() { var sheet
= SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var símbolos = ['AAPL',
'GOOGL', 'MSFT']; // Ejemplos de símbolos bursátiles var precios = [];

símbolos.forEach(función(símbolo) { var url =


'https://api.iextrading.com/1.0/stock/' + símbolo + '/precio'; var respuesta =
UrlFetchApp.fetch(url); var precio =
parseFloat(response.getContentText()); precios.push([símbolo,
precio]); }); hoja.getRange(1, 1,

precios.length, 2).setValues(precios); }

Archivar automáticamente mensajes de Gmail en Hojas de cálculo de Google


función archiveGmailMessages() { var sheet
= SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var threads =
GmailApp.search('label:inbox is:unread'); // Ejemplo de consulta de búsqueda var messages =
GmailApp.getMessagesForThreads(threads); messages.forEach(function(thread)
{ thread.forEach(function(message) { var subject
= message.getSubject(); var sender =
message.getFrom(); var date =
message.getDate(); sheet.appendRow([asunto,
remitente, fecha]);
Machine Translated by Google

mensaje.markRead(); }); }); }

Generar automáticamente eventos de Google Calendar a partir de respuestas de formularios de Google

function createEventsFromFormResponses() { var


form = FormApp.openById('your­form­id'); // Reemplazar
con el ID del formulario var responses = form.getResponses(); var calendar =
CalendarApp.getDefaultCalendar();
responses.forEach(function(response) { var itemResponses =
response.getItemResponses(); var title =
itemResponses[0].getResponse(); // Suponiendo que la primera
pregunta es el título del evento var startTime = new Date(itemResponses[1].getResponse()); // Suponiendo
que la segunda pregunta es la hora de inicio var endTime = new Date(itemResponses[2].getResponse()); //
Suponiendo que la tercera
pregunta es la hora de finalización

calendario.createEvent(título, hora de inicio, hora de

finalización); }); }

Enviar automáticamente notificaciones por correo electrónico para las respuestas de Formularios de Google

function
sendEmailNotificationsForFormResponses() { var form =
FormApp.openById('your­form­id'); // Reemplazar con el ID del formulario var responses =
form.getResponses();
responses.forEach(function(response) { var
respondentEmail = response.getRespondentEmail(); var itemResponses
= response.getItemResponses(); var message = 'Gracias por enviar
el formulario. Se ha recibido su respuesta.'; var subject = 'Confirmación de envío del formulario';
MailApp.sendEmail(respondentEmail, subject, message); }); }

Crear automáticamente eventos de Google Calendar a partir de datos de Hojas de cálculo de

Google function
createCalendarEventsFromSheetData() { var sheet =
SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var data =
sheet.getDataRange().getValues(); var calendar =
CalendarApp.getDefaultCalendar(); data.forEach(function(row) {
Machine Translated by Google

var title = row[0]; // Suponiendo que el título del evento está en la primera
columna var startTime = new Date(row[1]); // Suponiendo que la hora de inicio está en la segunda
columna var endTime = new Date(row[2]); // Suponiendo que la hora de finalización está en la
tercera columna calendar.createEvent(title, startTime,

endTime); }); }

Seguimiento automático de cambios en hojas de cálculo de Google con


Historial de revisiones
función trackSheetChanges() { var sheet
= SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var revisions = sheet.getRevisions();
revisions.forEach(function(revision) { Logger.log('ID
de revisión: ' + revision.getRevisionId());
Logger.log('Usuario: ' + revision.getUser()); Logger.log('Marca de
tiempo: ' + revision.getTimestamp());
Logger.log('Cambios: ' + revision.getChanges()); }); }

Generar códigos QR automáticamente a partir de URL en Google


Hojas
function generateQRCodesFromURLs() { var sheet =
SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var urls =
sheet.getRange('A:A').getValues(); // Suponiendo que las URL están en la columna A urls.forEach(function(url,
index) { var qrCode = 'https://api.qrserver.com/
v1/create­qr­code/?data=' + encodeURIComponent(url); sheet.insertImage(qrCode, index
+ 1, 2); // Insertar código QR en la
columna B }); }

Generar automáticamente documentos de Google desde hojas de cálculo de Google


Datos
función generateDocsFromSheetData() { var sheet =
SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var data =
sheet.getDataRange().getValues(); data.forEach(function(row)
{ var title = row[0]; // Suponiendo que
el título del documento está en la primera columna var body = row[1]; //
Suponiendo que el contenido del documento está en la segunda columna
DocumentApp.create(title).getBody().setText(body); }); }
Machine Translated by Google

Traducir automáticamente los datos de Google Sheets


función translateSheetData() { var sheet
= SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var range =
sheet.getDataRange(); var values =
range.getValues(); var translatedValues
= []; values.forEach(function(row)
{ var translatedRow = [];
row.forEach(function(cell)
{ var translatedCell =
LanguageApp.translate(cell, 'en', 'fr'); // Traducir del inglés al francés translatedRow.push(translatedCell); });

translatedValues.push(translatedRow); });

range.setValues(translatedValues); }

Generar automáticamente presentaciones de Google Slides desde


Datos de Hojas de cálculo de Google

función generateSlidesFromSheetData() { var sheet =


SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var data =
sheet.getDataRange().getValues(); var slides =
SlidesApp.create('Presentación a partir de datos de la hoja'); var presentation
= slides.getSlides(); data.forEach(function(row)
{ var slide = slides.appendSlide();
var slideTitle = row[0]; // Suponiendo que
el título de la diapositiva está en la primera columna var slideBody =
row[1]; // Suponiendo que el contenido de la diapositiva está en la segunda columna
slide.insertTextBox(slideTitle, 100, 100).insertText(0, 0, slideBody); }); }

También podría gustarte