Trabalhando com Excel em Rust: bibliotecas e exemplos de código

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Trabalhando com Excel em Rust: bibliotecas e exemplos de código

A linguagem Rust, conhecida por seu desempenho e segurança, é excelente para processamento de dados tabulares. Se você precisa ler, criar ou editar arquivos Excel (formatos .xlsx, .xls), o ecossistema Rust possui várias bibliotecas maduras. Neste artigo, abordaremos três principais: calamine (leitura), rust_xlsxwriter (escrita) e xlsx (ciclo completo). Você aprenderá como instalá-las e verá exemplos práticos de código.



Biblioteca calamine — leitura de arquivos Excel

calamine é uma biblioteca rápida e leve para ler arquivos Excel (xlsx, xls, xlsb, ods). Ela não requer instalação de dependências externas e funciona "pronta para uso". Suporta leitura de células, planilhas, fórmulas e metadados.



Instalação

[dependencies]calamine = "0.26"


Exemplo: leitura de dados de um arquivo

use calamine::{open_workbook, Reader, Xlsx};

fn main() -> Result<(), Box<dyn std::error::Error>> { // Abrindo o arquivo let mut workbook: Xlsx<_> = open_workbook("data.xlsx")?;

// Obtendo a planilha pelo nome if let Some(Ok(range)) = workbook.worksheet_range("Sheet1") { for row in range.rows() { for cell in row { // Cada célula é um DataType match cell { calamine::Data::String(s) => print!("{} ", s), calamine::Data::Float(f) => print!("{} ", f), calamine::Data::Int(i) => print!("{} ", i), _ => print!("? "), } } println!(); } }

Ok(())}


Este código abre o arquivo data.xlsx, lê a planilha Sheet1 e exibe todas as células linha por linha. O calamine determina automaticamente o tipo de dado (string, número, data, etc.).



Biblioteca rust_xlsxwriter — criação e escrita de Excel

rust_xlsxwriter é uma biblioteca poderosa para criar arquivos xlsx. Ela suporta formatação, mesclagem de células, gráficos, formatação condicional e muito mais. É o equivalente direto da biblioteca Python xlsxwriter.



Instalação

[dependencies]rust_xlsxwriter = "0.76"


Exemplo: criação de um relatório simples

use rust_xlsxwriter::{Workbook, Format, Color};

fn main() -> Result<(), Box<dyn std::error::Error>> { let mut workbook = Workbook::new();

// Criando formato para cabeçalhos let header_format = Format::new() .set_bold() .set_font_color(Color::White) .set_background_color(Color::Blue);

// Adicionando planilha let sheet = workbook.add_worksheet();

// Escrevendo cabeçalhos sheet.write_with_format(0, 0, "Nome", &header_format)?; sheet.write_with_format(0, 1, "Idade", &header_format)?; sheet.write_with_format(0, 2, "Cidade", &header_format)?;

// Escrevendo dados sheet.write(1, 0, "Ana")?; sheet.write(1, 1, 28)?; sheet.write(1, 2, "Moscou")?;

sheet.write(2, 0, "Ivan")?; sheet.write(2, 1, 35)?; sheet.write(2, 2, "São Petersburgo")?;

// Salvando no arquivo workbook.save("report.xlsx")?;

println!("Arquivo report.xlsx criado com sucesso!"); Ok(())}


Neste exemplo, criamos um arquivo com cabeçalhos formatados (texto em negrito, fonte branca sobre fundo azul) e duas linhas de dados. O rust_xlsxwriter também suporta gráficos, imagens e tabelas dinâmicas.



Biblioteca xlsx — ciclo completo (leitura + escrita)

xlsx é uma biblioteca versátil que permite tanto ler quanto criar arquivos xlsx. Ela é menos popular, po

Recommendations