A partir de la respuesta de @soMario a cierta pregunta, obtener los datos de una columna específica se puede hacer de esta manera:
Lo siguiente obtendrá las columnas b,d,f,g del rango A:G.
const rawData = ss.getRange("A:G").getValues().map(([,b,,d,,f,g]) => [b,d,f,g]); ¿Cómo puedo obtener lo mismo, pero usando getRange(2,1,sheet.getLastRow(),7) en su lugar?
¡Gracias!
cuando obtiene valores () de cualquier rango, se almacena como una matriz de muchas matrices, que se ve así, estructuralmente para el rango A1: G3:
[ [ , , , , , , ], [ , , , , , , ], [ , , , , , , ] ]cuando desea una "columna" específica, digamos la columna 4 de ese rango, en javascript/appscript significa que desea el cuarto elemento de cada una de las matrices en la matriz. Al contar desde 0, el cuarto elemento es el tercer "índice".
Al usar la función de mapeo, a cada uno de los elementos de la matriz que se está mapeando se le asigna la variable que desee. Es común usar "e". Entonces, para su caso específico, le gustaría hacer esto
const rawData = ss.getRange("A:G").map(e=>[ e[1], e[3], e[5], e[6] ]);siendo 1,3,5 y 6 los "índices" de las columnas B,D,F y G al empezar a contar con A como 0.
Sin embargo, es probable que también desee un filtro en sus datos para devolver solo las filas donde hay valores en la columna A. Si esa conjetura es correcta, puede aplicar un filtro antes de su mapa como este:
const rawData = ss.getRange("A:G").filter(e=>e[0]).map(e=>[ e[1], e[3], e[5], e[6] ]);