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 = 'yourfolderidhere'; // 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('yourfileidhere'); // 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 = 'originaldocid'; // 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('yourcalendar
[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('yourbackupspreadsheetid'); // 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:
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 = /[azA
Z09._]+@[azAZ09.]+\.[azAZ]{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("20230101"), new Date("20231231")); // 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
targetspreadsheetid'; 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 clavevalor 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
documentid'); // 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 = 'yourslackwebhookurl'; // 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 = ['docid1', 'docid2', 'docid3']; // 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('yourbackupspreadsheetid'); // 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 = ['docid1', 'docid2']; //
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('yourslidesid'); // 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
= 'yourfolderid'; // 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 = 'youropenweatherapikey'; // 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('yourfolderid'); // 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(), 'aaaaMM
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('yourformid'); // 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('yourformid'); // 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/createqrcode/?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); }); }