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 layouts;
|
||||||
pub mod resultado;
|
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.
|
/// 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.
|
/// seguida pelas linhas de dados.
|
||||||
pub fn renderizar_tabela_preview(ui: &mut egui::Ui, linhas: &[Vec<String>]) {
|
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);
|
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)
|
.striped(true)
|
||||||
.spacing([8.0, 2.0])
|
.spacing([8.0, 2.0])
|
||||||
.show(ui, |ui| {
|
.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 {
|
for i in 0..num_colunas {
|
||||||
ui.label(
|
ui.label(
|
||||||
egui::RichText::new(format!("[{}]", i))
|
egui::RichText::new(format!("{} ({})", indice_para_letra(i), i))
|
||||||
.strong()
|
.strong()
|
||||||
.monospace(),
|
.monospace(),
|
||||||
);
|
);
|
||||||
|
|||||||
Reference in New Issue
Block a user