feat: atualiza a renderização da tabela de pré-visualização para exibir letras do Excel como cabeçalho
This commit is contained in:
+16
-3
@@ -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<String>]) {
|
||||
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<String>]) {
|
||||
.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(),
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user