miércoles, 18 de mayo de 2022

AppendRow: empezar a escribir datos en una columna diferente de la A

 Os presento la situación, primero, y luego la comento:

En un curso aprendimos a recorrer todos los archivos y subcarpetas de una carpeta dada. 

Utilizamos appendRow([]) para escribir nombre, tipo y fecha de creación de cada archivo recorrido en una hoja de cálculo, ya que sabemos que es la forma más rápida y sencilla de escribir valores en una pestaña, sin tener que preocuparnos de definir ni fila ni última fila.

Pero, ya que lo habíamos conseguido, se nos ocurrió que estaría bien que lo escrito mostrará la profundidad del archivo, haciendo "sangrías" (empezando a escribir appendRow en una columna diferente a la primera (la columna A) según el árbol de las carpetas.

Tal que así: 

 

 

Para ello necesitamos añadir a appendRow columnas vacías

Por ejemplo, con este appendRow([nombre,tipo,fecha]), el nombre se escribirá en la columna A

y con este diferente    appendRow(['',nombre,tipo, fecha]), el nombre se escribirá en la columa B, gracias a las comillas vacías que hemos escrito antes de nombre.

 

El problema es que no sabemos de antemano si queremos empezar en la columna B (para una subcarpeta de primer nivel) o en la columna C, o en la D....para carpetas más internas.

Debemos, pués, crear el contenido de appendRow de forma dinámica.

 La solución pasa por saber que estamos ante un array y, por lo tanto, debemos utilizar los métodos para los arrays.(Utilizaremos unshift para incluir al principio del array tantas posiciones vacías como necesitemos, utilizando '  ')

Este es el código:

Creamos un contador para saber en que columna empezamos (en el bucle de las subcarpetas), dependiendo del nivel de la subcarpeta

 // Creamos un array con los datos básicos
 var miarray = [nombre,tipo,fecha]
// Imaginamos que queremos escribir en la columna C, y el contador tiene el valor de 3 
var contador = 3
// Organizamos un bucle que de tantas vueltas como el valor del contador menos uno 
  for (var x=1;x<=contador;x++){
 // Y gracias a este método de arrays incluimos tantos espacios vacíos
// al principio del array como vueltas 
    miarray.unshift('')
  }
 // Ahora, ya preparado el array con sus espacios lo escribimos en la pestaña
  pestana_arbol.appendRow(miarray)




Crear PDF horizontal

El código que vamos a mostrar aquí no ha sido creado por nosotros, sino que lo hemos encontrado en Internet. Objetivo: Publicar una pesta...