function doGet() {
var form = HtmlService.createTemplateFromFile("Principal");
return form.evaluate()
.setTitle("Consulta de Notas")
.setSandboxMode(HtmlService.SandboxMode.IFRAME);
}
function Chamar(Arquivo){
return HtmlService.createHtmlOutputFromFile(Arquivo).getContent();
}
// 🔥 NOVA FUNÇÃO (ADICIONE ISSO)
function buscarDados(nomeAba) {
var planilha = SpreadsheetApp.getActiveSpreadsheet();
var aba = planilha.getSheetByName(nomeAba);
if (!aba) {
return [];
}
var dados = aba.getDataRange().getDisplayValues(); // 👈 resolve seu problema
// remove linhas vazias
dados = dados.filter(linha => {
return linha.join("").trim() !== "";
});
return dados;
}
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>Consulta de Notas</title>
<style>
:root{
--bg1:#004d7a;
--bg2:#008793;
--bg3:#00bf72;
--card-bg: rgba(255,255,255,0.12);
--glass: rgba(255,255,255,0.15);
}
html,body{height:100%;margin:0;font-family: "Segoe UI", Roboto, Arial, sans-serif;}
body{
display:flex;
justify-content:center; /* Mantém o alinhamento horizontal central */
background: linear-gradient(135deg, var(--bg1), var(--bg2), var(--bg3));
color:#fff;
padding:20px;
box-sizing:border-box;
}
.container{
width:100%;
max-width:720px;
background:var(--card-bg);
border-radius:14px;
padding:18px;
box-shadow: 0 8px 30px rgba(0,0,0,0.35);
backdrop-filter: blur(6px);
}
.header{
display:flex;
align-items:center;
gap:12px;
margin-bottom:12px;
}
.brand {
width:56px;
height:56px;
border-radius:8px;
background:rgba(255,255,255,0.12);
display:flex;
align-items:center;
justify-content:center;
font-weight:bold;
font-size:18px;
}
h1{font-size:1.2rem;margin:0;}
.form-row{
display:flex;
gap:10px;
margin-top:12px;
align-items:center;
}
input[type="text"]{
flex:1;
padding:12px 14px;
border-radius:10px;
border:none;
font-size:1rem;
outline:none;
background:#ffffffdd;
color:#111;
}
.btn {
padding:11px 14px;
border-radius:10px;
border:none;
font-weight:700;
cursor:pointer;
min-width:120px;
}
.btn-primary{ background:#00bf72; color:#fff; }
.btn-secondary{ background:#f5f5f5; color:#111; }
.resultado {
margin-top:18px;
background:var(--glass);
border-radius:10px;
padding:14px;
color:#fff;
}
.disciplina{ display:flex; justify-content:space-between; gap:10px; padding:6px 0; border-bottom: 1px dashed rgba(255,255,255,0.06); }
.disciplina:last-child{ border-bottom: none; }
.smallnote{ font-size:0.85rem; opacity:0.9; margin-top:8px; }
/* responsivo */
@media (max-width:520px){
.header{ gap:8px; }
.brand{ width:44px; height:44px; font-size:16px; }
h1{ font-size:1rem; }
.form-row{ flex-direction:column; align-items:stretch; }
.btn{ width:100%; min-width:unset; }
}
.btn-link {
background: #ffd700; /* Fundo amarelo para destacar */
border: 1px solid #e6c200; /* Borda para contraste */
color: #333; /* Texto escuro para legibilidade */
cursor: pointer;
font-size: 0.9rem; /* Proporcional à fonte do texto circundante */
padding: 4px 8px; /* Tamanho ajustado para retangular e proporcional */
border-radius: 4px; /* Cantos ligeiramente arredondados */
margin-left: 6px;
height: 24px; /* Altura fixa para consistência */
display: flex;
align-items: center;
justify-content: center;
}
</style>
</head>
<body>
<div class="container">
<div class="header">
<div class="brand">ESC</div>
<div>
<h1>Consulta de Notas por Matrícula</h1>
<div class="smallnote">Digite a matrícula (ex.: 222345 ou 152345) — o sistema escolherá a aba conforme a matrícula.</div>
</div>
</div>
<div class="form-row">
<input id="matricula" type="text" placeholder="Digite a matrícula" autocomplete="off" />
<button id="btnPesquisar" class="btn btn-primary">PESQUISAR</button>
<button id="btnLimpar" class="btn btn-secondary">LIMPAR</button>
</div>
<div id="mensagem" style="margin-top:12px; color:#ffdddd;"></div>
<div id="resultado" class="resultado" style="display:none;"></div>
<script>
const btnPesquisar = document.getElementById('btnPesquisar');
const btnLimpar = document.getElementById('btnLimpar');
const mensagem = document.getElementById('mensagem');
const resultado = document.getElementById('resultado');
btnPesquisar.addEventListener('click', function(){
mensagem.textContent = "";
resultado.style.display = "none";
const matricula = document.getElementById('matricula').value.trim().replace(/\s/g, "");
if(!matricula){
mensagem.textContent = "Por favor, digite a matrícula.";
return;
}
google.script.run.withSuccessHandler(function(res){
if(!res || res === "Não encontrado!"){
mensagem.textContent = "Matrícula não encontrada!";
return;
}
let html = "<table style='border-collapse:collapse;width:100%;'>";
res.forEach((linha, i) => {
html += "<tr>";
linha.forEach((celula, j) => {
html += "<td style='border:1px solid #ccc;padding:6px;text-align:center;'>";
if (celula.link) {
html += `<a href="${celula.link}" target="_blank"
style="color:blue;font-weight:bold;text-decoration:underline;">
${celula.texto || "CLIQUE AQUI"}
</a>`;
} else {
html += celula.texto || "";
}
html += "</td>";
});
html += "</tr>";
});
html += "</table>";
resultado.innerHTML = html;
resultado.style.display = "block";
resultado.innerHTML = html;
resultado.style.display = "block";
}).PesquisarNotas(matricula);
}); // 🔴 FECHAMENTO CORRETO
btnLimpar.addEventListener('click', function(){
document.getElementById('matricula').value = "";
mensagem.textContent = "";
resultado.style.display = "none";
resultado.innerHTML = ""; // 🔴 limpa também o conteúdo
});
</script>
<script>
function mostrarDados(dados) {
if (!dados || dados.length === 0) {
console.log("Sem dados");
return;
}
console.log(dados); // 👈 por enquanto só mostra no console
}
// 🔥 CHAMADA DO GOOGLE SCRIPT
google.script.run
.withSuccessHandler(mostrarDados)
.buscarDados("ABA 22"); // 👈 escolha a aba aqui
</script>
</body>
</html>
var url = "https://docs.google.com/spreadsheets/d/1ktIfJBBAqgMpXq5YNOFjMIlufGwJOqebQWUvYJgYD3Q/edit?usp=sharing";
function PesquisarNotas(matricula) {
try {
matricula = matricula.toString().trim();
var planilha = SpreadsheetApp.openByUrl(url);
var aba = "";
// 🔴 DEFINE QUAL ABA USAR
if (matricula.startsWith("15")) {
aba = "Página15";
} else if (matricula.startsWith("22")) {
aba = "Página22";
} else if (matricula.startsWith("13")) {
aba = "Página13";
} else {
return "Não encontrado!";
}
var guia = planilha.getSheetByName(aba);
if (!guia) return "Não encontrado!";
// 🔴 PEGA TUDO DA ABA (AUTOMÁTICO)
var intervalo = guia.getDataRange();
var valores = intervalo.getDisplayValues();
var richText = intervalo.getRichTextValues();
var resultado = [];
for (var i = 0; i < valores.length; i++) {
var linha = [];
for (var j = 0; j < valores[i].length; j++) {
var texto = valores[i][j];
var link = richText[i][j]?.getLinkUrl();
if (link) {
linha.push({
texto: texto || "CLIQUE AQUI",
link: link
});
} else {
linha.push({
texto: texto,
link: null
});
}
}
resultado.push(linha);
}
return resultado;
} catch (e) {
Logger.log(e);
return "Não encontrado!";
}
}