From dedb6a72c2776faa2fe0acc95c6d8fedb63f98de Mon Sep 17 00:00:00 2001 From: FelipeCN <57776624+felipecaninnovaes@users.noreply.github.com> Date: Tue, 3 Mar 2026 09:27:22 -0300 Subject: [PATCH] =?UTF-8?q?feat:=20atualiza=20a=20renderiza=C3=A7=C3=A3o?= =?UTF-8?q?=20da=20tabela=20de=20pr=C3=A9-visualiza=C3=A7=C3=A3o=20para=20?= =?UTF-8?q?exibir=20letras=20do=20Excel=20como=20cabe=C3=A7alho?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/ui/screens/mod.rs | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/ui/screens/mod.rs b/src/ui/screens/mod.rs index 3d97c09..8811818 100644 --- a/src/ui/screens/mod.rs +++ b/src/ui/screens/mod.rs @@ -3,8 +3,21 @@ pub mod import; pub mod layouts; pub mod resultado; +/// Converte um índice de coluna base-0 para a notação de letras do Excel (A, B, ..., Z, AA, ...). +fn indice_para_letra(mut idx: usize) -> String { + let mut resultado = String::new(); + loop { + resultado.insert(0, (b'A' + (idx % 26) as u8) as char); + if idx < 26 { + break; + } + idx = idx / 26 - 1; + } + resultado +} + /// Renderiza uma tabela simples de pré-visualização do arquivo. -/// Exibe uma linha de cabeçalho com os índices das colunas (0, 1, 2, ...) +/// Exibe uma linha de cabeçalho com letras no estilo Excel (A, B, C, ...) /// seguida pelas linhas de dados. pub fn renderizar_tabela_preview(ui: &mut egui::Ui, linhas: &[Vec]) { let num_colunas = linhas.iter().map(|l| l.len()).max().unwrap_or(0); @@ -30,10 +43,10 @@ pub fn renderizar_tabela_preview(ui: &mut egui::Ui, linhas: &[Vec]) { .striped(true) .spacing([8.0, 2.0]) .show(ui, |ui| { - // Linha de cabeçalho: índices 0, 1, 2, ... + // Linha de cabeçalho: letras A, B, C, ... com índice base-0 entre parênteses for i in 0..num_colunas { ui.label( - egui::RichText::new(format!("[{}]", i)) + egui::RichText::new(format!("{} ({})", indice_para_letra(i), i)) .strong() .monospace(), );