Hoy en día, las soluciones en la nube están desplazando a las aplicaciones de escritorio dedicadas al trabajo de oficina. Una de las mayores suites ofimáticas es la de Google, que incluye documentos, hojas de cálculo y presentaciones, es decir, la mayor parte de lo que necesita una oficina media.
En este artículo, quiero examinar más de cerca la aplicación Google Spreadsheets y mostrarte cómo hacerla aún más inteligente utilizando Google Apps Script.
Imagina que tu trabajo consiste en supervisar el trabajo de otra persona, lo que suele llevar a redactar algunos informes. Quieres mantener las cosas estandarizadas y genéricas, así que has creado una hoja de cálculo con la lista de cosas que tienes que controlar y algunas celdas para un comentario. Supongamos que eres responsable de la calidad de una producto. Entonces su Hoja de Cálculo puede tener este aspecto:
En el ejemplo anterior se pueden ver varias cosas:
nombre de la función ("Formulario de inicio de sesión de usuario") y número (por ejemplo, de un sistema ERP),
lista de aspectos que debe comprobar y sobre los que debe dar su opinión (columna "Área"),
algunos campos vacíos para sus conclusiones (columna "Comentario").
Esta hoja se llama "Generador de informes", porque voy a mostrarte cómo este documento puede convertirse en una herramienta realmente útil, que te permita evaluar la calidad de los resultados del trabajo de alguien.
Si desea cuantificar algunos resultados, probablemente la mejor opción sería utilizar una escala, por ejemplo de 1 a 10 puntos, o algo por el estilo.
Creemos una nueva hoja en el mismo documento, llamémosla "Config" y definámosla como protegida (o al menos añadamos un emoji de candado a su nombre). Esta hoja es sólo para mantener algunas opciones predefinidas, como las de abajo:
Ahora puedes poner estos valores en algunos desplegables de la aplicación Generador de informes utilizando el botón Validación de datos característica. Aquí puedes encontrar algunas instrucciones sobre cómo conseguirlo:
Una vez hecho esto, puede convertir fácilmente las calificaciones en valores numéricos utilizando la función SI fórmula. Su hoja de cálculo seguirá siendo humana y sus conclusiones estarán cuantificadas (es decir, medibles y comparables) al mismo tiempo.
Este documento está muy bien, sin embargo, imagínese lo que ocurre cuando el alcance de su auditoría crece y tienes cientos de cosas que comprobar. Puedes guardar una plantilla de formulario vacía y copiarla cada vez que necesites hacer un nuevo informe, pero cambiar entre las listas de documentos y la hoja de cálculo es muy molesto. Este es el punto en el que empiezas a pensar en algo de automatización.
Es el momento perfecto para comenzar tu aventura con el Script de Google Apps.
Antes de empezar a codificar, preparemos algunos botones para acciones masivas. De acuerdo con el ejemplo anterior:
marque todos los elementos como "Perfecto".
marque todos como "Mejoras necesarias".
marque todo como "Inaceptable".
restablecer todo (establecer el valor en una cadena vacía).
Además, necesitaremos una acción extra para guardar un nuevo archivo cuando la auditoría esté terminada.
En primer lugar, ampliemos nuestro Generador de informes con el área funcional que contiene botones.
A continuación, utilizando Insertar -> Dibujovamos a añadir nuestros botones, uno por uno.
Nuestro documento de muestra debería tener este aspecto:
Estamos listos para añadir algo de lógica a esta hermosa interfaz de usuario. Es muy fácil empezar - sólo tienes que elegir Herramientas -> Editor de scripts en el menú superior y el navegador saltará a una nueva tarjeta.
La interfaz del editor es muy intuitiva. Si está familiarizado con cualquier código debería renombrar fácilmente su archivo o crear uno nuevo (Archivo -> Nuevo -> Archivo de guión).
Script de Google Apps no es más que el primo de un JavaScript, por así decirlo. Si conoces la JS, ¡también puedes dominar la GS!
El primer paso es reunir todas las referencias necesarias en un solo lugar y darles nombres significativos. Empezaremos con las variables globales, eliminando la variable por defecto miFunción y escribir algo más útil en el campo Código.gs archivo.
var hoja de cálculo = SpreadsheetApp.getActiveSpreadsheet()
// referencias a hojas
var report = spreadsheet.getSheets()[0]
var config = spreadsheet.getSheets()[1]
El código anterior es bastante autoexplicativo, pero para que quede absolutamente claro:
getActiveSpreadsheet nos permite obtener la referencia a la hoja de cálculo en la que estamos trabajando,
getSheets llamado en el método Hoja de cálculo devuelve la matriz de hojas de esta hoja de cálculo; en nuestro ejemplo, devuelve las hojas [Generador de informes sábana, Configurar sheet] array.
Ahora podemos ir más allá y obtener algunos datos útiles de nuestra hoja de cálculo.
// área editable (celdas con desplegables)
var dropdowns = report.getRange('C4:C13')
// celda con subtítulo (nombre de la característica)
var featureName = report.getRange('B2').getValue()
// opciones de la hoja 'Config
// observa que puedes pasar una sola celda al método getRange()
// y el cambio de opciones no afecta a la funcionalidad del script
var values = {
inaceptable: config.getRange('A2').getValue(),
improvements_needed: config.getRange('A3').getValue(),
perfecto: config.getRange('A4').getValue(),
vacío: ''
};
Lo único que nos queda por codificar es la definición de las funciones que queremos asignar a nuestros botones.
// funciones de los botones
function todoPerfecto() {
dropdowns.setValue(valores.perfecto)
}
function todoNecesitaMejoras() {
dropdowns.setValue(values.improvements_need)
}
function allUnacceptable() {
dropdowns.setValue(valores.inaceptable)
}
function clear() {
dropdowns.setValue(values.empty)
}
function copy() {
var copy = spreadsheet.copy(featureName + ' - report')
// Ahora hemos copiado dos hojas con los mismos valores
// pero con los nombres cambiados (con el sufijo "copy"),
// en este caso, tenemos que darles los nombres originales
// cambiar el nombre de la hoja de informe
copy.getSheets()[0].setName(report.getName())
// cambiar el nombre de la hoja de configuración
copy.getSheets()[1].setName(config.getName())
}
En copiar() creará automáticamente una nueva hoja de cálculo llamada (en nuestro ejemplo) "Formulario de acceso de usuario - informe"justo al lado del actual.
Asigna nuestros métodos a los botones creados anteriormente. Seleccione Asignar un guión después de hacer clic con el botón derecho...
...y escribe el nombre del método, aquí es todoPerfecto
No necesita cerrar su generador. Utilice sus acciones masivas para preparar el formulario para un nuevo informe, cambie el nombre de la función y guarde otra copia.
Posibilidades de Script de Google Apps son tan amplios que hablar de todos ellos llevaría toda una serie de artículos. Si está interesado en optimizar su trabajo de oficina, no dude en consultar la sección documentos oficiales ¡y haz que tus sábanas sean aún más inteligentes!
Existen algunos trucos realmente útiles, como éste de xfanatical.com sobre la exportación de Google Spreadsheet a PDF.
El ejemplo descrito en este artículo es aquí. Espero que te encante. ¡Que te diviertas!