Criei um aplicativo web para o banco de dados da minha empresa. O aplicativo é simples: primeiro, ele solicita o nome de usuário e a senha. Agora, preciso encontrar uma maneira de exibir todos os dados que correspondam apenas ao nome de usuário inserido no formulário de login e obtido na coluna AF de dados da planilha.
Acho que aqui está um problema em que é preciso mostrar todos os dados.
/**DataTable */
function getAllData() {
var sess = getSession();
var uid = sess.uid;
var range = LoginSheet.getDataRange().createTextFinder(uid).matchEntireCell(true).findAll();
var values = range.getDisplayValues()
Logger.log(values)
return values
}
E aqui está uma planilha onde você pode trabalhar ou copiar as informações. https://docs.google.com/spreadsheets/d/1zKlemBPAxxbWOSw66rSWM8GPloES1ZTyuTFNZ19PBOE/edit?gid=0#gid=0
Mostrar todo o banco de dados sobre o nome de usuário que fará login
Com base na função que você postou,
createTextFinder(uid).findAll()
ela encontra apenas células individuais, não linhas inteiras. Além disso, comofindAll()
retorna um array de intervalos (não um único intervalo), você não pode usargetDisplayValues()
diretamente nele.getDisplayValues()
é um método destinado a um único intervalo de células. É por isso que você está com problemas. Modifiquei o script com base nas alterações necessárias.Mudanças
.getDataRange().getValues()
pega todos os dados de uma vez.
.filter()
passa por cada linha e verifica se
AF == uid
Script modificado
Saída de amostra
Referência
Passe o ID que você deseja corresponder como parâmetro e use
Array.filter()
para obter os resultados em que o ID corresponde a uma coluna, como este:Veja Array.filter() .