Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

108
Visualizações
Obtenga la columna de hojas de Google por nombre en Google Scripts

Tengo un script que me permite obtener el contenido de una columna de mi Hoja de Google y mostrarlo en mi formulario HTML mientras elimino cualquier duplicado del mismo nombre.

Ejemplo: rojo, rojo, amarillo, amarillo, azul, verde se mostraría en el menú desplegable como rojo, amarillo, azul, verde.

La cuestión es que me gustaría obtener el contenido de la columna por nombre y no por número, es decir, 1.

Aquí está mi guión:

 function getColors() { var sheet = SpreadsheetApp.openById("1czFXXQAIbW9IlAPwHQ0D5S_a-Ew82p-obBEalJFNJTI").getSheetByName("Vinyl Costs"); var getLastRow = sheet.getLastRow(); var return_array = []; for(var i = 2; i <= getLastRow; i++) { if(return_array.indexOf(sheet.getRange(i, 1).getValue()) === -1) { return_array.push(sheet.getRange(i, 1).getValue()); } } return return_array; }

Encontré una pregunta similar y la respuesta aceptada fue esta:

 function getByName(colName, row) { var sheet = SpreadsheetApp.getActiveSheet(); var data = sheet.getDataRange().getValues(); var col = data[0].indexOf(colName); if (col != -1) { return data[row-1][col]; } }

¿Pero parece que no puedo hacer que funcione con el mío? Este es mi primer script de Google, así que todavía no lo entiendo al 100%.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Cambié un poco las funciones.
Por un lado, getByName ahora no obtiene todos los valores de la hoja, sino solo la primera fila.

 function getColors() { const sheet = SpreadsheetApp.openById("1czFXXQAIbW9IlAPwHQ0D5S_a-Ew82p-obBEalJFNJTI").getSheetByName("Vinyl Costs"); const colName = 'your_column_name'; const colNum = getColNumberByName(colName); if (colNum === null) { Logger.log('Column ' + colName + ' was not found!'); return []; } const firstRow = 2; const lastRow = sheet.getLastRow(); // get all values from column const columnData = sheet.getRange(firstRow, colNum, lastRow).getValues().flat(); // filter values on duplicates return columnData.filter((el, i) => i === columnData.indexOf(el) && el !== ''); } function getColNumByName(colName, row = 1) { const sheet = SpreadsheetApp.openById("1czFXXQAIbW9IlAPwHQ0D5S_a-Ew82p-obBEalJFNJTI").getSheetByName("Vinyl Costs"); const [data] = sheet.getRange(row, 1, row, sheet.getLastColumn()).getValues(); const col = data.indexOf(colName); // adding 1 because column nums starting from 1 return col === -1 ? null : col + 1; }
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda