Sé que este es un conocimiento muy básico, incluso después de buscar las respuestas aquí, todavía no tengo las respuestas correctas. Me gustaría imprimir datos de lista 2D en una hoja de cálculo, sin embargo, solo la columna seleccionada.
Aquí está la muestra de los datos de la 2dlist:
| Nombre | Años | Género | País |
|---|---|---|---|
| annie | 26 | Femenino | A |
| John | 22 | Masculino | B |
| katie | 24 | Femenino | C |
| Ronaldo | 26 | Masculino | D |
Sin embargo, solo necesito imprimir las dos primeras columnas en la hoja de cálculo, que es Nombre y Edad . ¿Qué guión debo usar?
Gracias, realmente aprecio la ayuda.
Dada su tabla, su matriz 2D se ve así:
const data = [ ['Name', 'Age', 'Gender', 'Country'], ['Annie', 26, 'Female', 'A'], ['John', 22, 'Male', 'B'], ['Katie', 24, 'Female', 'C'], ['Ronaldo', 26, 'Male', 'D'], ];El fragmento a continuación devolverá una nueva matriz 2D solo con las primeras 2 columnas:
const data = [ ['Name', 'Age', 'Gender', 'Country'], ['Annie', 26, 'Female', 'A'], ['John', 22, 'Male', 'B'], ['Katie', 24, 'Female', 'C'], ['Ronaldo', 26, 'Male', 'D'], ]; const getFirstTwoCols = data => data.map(row => [row[0], row[1]]); console.log(getFirstTwoCols(data));Luego puede pegar los nuevos datos donde desee, por ejemplo:
const pasteData = () => { const newData = getFirstTwoCols(data) SpreadsheetApp .getActive() .getSheetByName('Sheet2') .getRange(1, 1, newData.length, newData[0].length) .setValues(newData); }En su situación, ¿qué tal el siguiente script de muestra?
function myFunction() { // This is your 2D list. const data = [["Name", "Age", "Gender", "Country"], ["Annie", "26", "Female", "A"], ["John", "22", "Male", "B"], ["Katie", "24", "Female", "C"], ["Ronaldo", "26", "Male", "D"]]; const selected = ["Name", "Age"]; // This is your selected columns. // 1. Transpose the 2D list. const transpose = data[0].map((_, c) => data.map(r => r[c])); // 2. Retrieve the selected columns. const cols = transpose.reduce((ar, c) => { if (selected.includes(c[0])) ar.push(c); return ar; }, []); // 3. Transpose the selected columns. const values = cols[0].map((_, c) => cols.map(r => r[c])); // 4. Put the values to the Spreadsheet. const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1"); // Please set the sheet name. sheet.getRange(1, 1, values.length, values[0].length).setValues(values); }data también se puede recuperar de la hoja de cálculo.function myfunk() { const ss = SpreadsheetApp.getActive(); const sh = ss.getSheetByName('Sheet0');//I pasted your list into spreadsheet const list = sh.getDataRange().getValues(); const osh = ss.getSheetByName('Sheet1'); let oA = list.map(r => [r[0],r[1]]); osh.getRange(1,1,oA.length,oA[0].length).setValues(oA); SpreadsheetApp.flush(); }