Trabajo con Excel en Rust: bibliotecas y ejemplos de código

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Trabajo con Excel en Rust: bibliotecas y ejemplos de código

El lenguaje Rust, conocido por su rendimiento y seguridad, es ideal para procesar datos tabulares. Si necesita leer, crear o editar archivos Excel (formatos .xlsx, .xls), en el ecosistema de Rust existen varias bibliotecas maduras. En este artículo analizaremos tres principales: calamine (lectura), rust_xlsxwriter (escritura) y xlsx (ciclo completo). Aprenderá cómo instalarlas y verá ejemplos de código funcionales.



Biblioteca calamine — lectura de archivos Excel

calamine es una biblioteca rápida y ligera para leer archivos Excel (xlsx, xls, xlsb, ods). No requiere instalar dependencias externas y funciona "de fábrica". Admite lectura de celdas, hojas, fórmulas y metadatos.



Instalación

[dependencies]calamine = "0.26"


Ejemplo: lectura de datos desde un archivo

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

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

// Obtenemos la hoja por nombre if let Some(Ok(range)) = workbook.worksheet_range("Sheet1") { for row in range.rows() { for cell in row { // Cada celda es un 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 el archivo data.xlsx, lee la hoja Sheet1 y muestra todas las celdas fila por fila. calamine detecta automáticamente el tipo de dato (cadena, número, fecha, etc.).



Biblioteca rust_xlsxwriter — creación y escritura de Excel

rust_xlsxwriter es una potente biblioteca para crear archivos xlsx. Admite formato, combinación de celdas, gráficos, formato condicional y mucho más. Es el equivalente directo de la biblioteca de Python xlsxwriter.



Instalación

[dependencies]rust_xlsxwriter = "0.76"


Ejemplo: creación de un informe simple

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

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

// Creamos un formato para los encabezados let header_format = Format::new() .set_bold() .set_font_color(Color::White) .set_background_color(Color::Blue);

// Agregamos una hoja let sheet = workbook.add_worksheet();

// Escribimos los encabezados sheet.write_with_format(0, 0, "Nombre", &header_format)?; sheet.write_with_format(0, 1, "Edad", &header_format)?; sheet.write_with_format(0, 2, "Ciudad", &header_format)?;

// Escribimos los datos sheet.write(1, 0, "Ana")?; sheet.write(1, 1, 28)?; sheet.write(1, 2, "Moscú")?;

sheet.write(2, 0, "Iván")?; sheet.write(2, 1, 35)?; sheet.write(2, 2, "San Petersburgo")?;

// Guardamos en un archivo workbook.save("report.xlsx")?;

println!("¡Archivo report.xlsx creado exitosamente!"); Ok(())}


En este ejemplo creamos un archivo con encabezados formateados (texto en negrita, fuente blanca sobre fondo azul) y dos filas de datos. rust_xlsxwriter también admite gráficos, imágenes y tablas dinámicas.



Biblioteca xlsx — ciclo completo (lectura + escritura)

xlsx es una biblioteca versátil que permite tanto leer como crear archivos xlsx. Es menos popular que

Recommendations