Introducción

La gestión de hojas de cálculo es el núcleo del crate aspose-cells-foss-rust: los objetos que modelan un libro de trabajo, sus hojas y sus celdas, y las operaciones que convierten datos de Rust en archivos XLSX presentables. Esta publicación recorre esa superficie — desde crear hojas y escribir valores tipados hasta el estilo, el diseño de página y las características estructurales que hacen que los libros de trabajo sean utilizables: comentarios, hipervínculos, tablas y nombres definidos.

Todo lo que se muestra aquí forma parte del crate de código abierto bajo licencia MIT. En ningún momento se requiere una instalación de Microsoft Office; la biblioteca lee y escribe directamente el formato de paquete XLSX.

Esta sección ha sido revisada contra el modelo fuente actual para el comportamiento más reciente del producto y la cobertura de API.


Características clave

Hojas de cálculo y colecciones de celdas

Las hojas de cálculo se gestionan a través de las colecciones de hojas del libro de trabajo. Las hojas se acceden por índice o nombre, se renombran con set_name, y sus celdas se obtienen mediante get_cells (lectura) o get_cells_mut (escritura):

let mut workbook = Workbook::new();
{
    let mut worksheets = workbook.get_worksheets_mut();
    let sheet = worksheets.get(0)?;
    sheet.set_name("Charts")?;
    {
        let mut cells = sheet.get_cells_mut();
        cells.get("A1")?.put_value_string("Month")?;
        cells.get("B1")?.put_value_string("Sales")?;
    }
}

Valores tipados por nombre o índice

Las celdas aceptan cadenas, enteros, booleanos, decimales y fechas/horas mediante setters tipados. Las celdas pueden dirigirse al estilo A1 (get("B3")) o numéricamente (get_by_index(row, column)), lo que se adapta a diseños generados:

for month in 1..=12_u32 {
    cells
        .get_by_index(month, 0)
        .put_value_string(format!("Month {month}"))?;
    cells
        .get_by_index(month, 1)
        .put_value_i32((month as i32 * 1000) + (month as i32 * 50))?;
}

Fórmulas con valores en caché

put_formula_with_cached_value almacena el texto de la fórmula junto con el valor que Excel debe mostrar antes de su primer recálculo — importante cuando el archivo es consumido por otras herramientas que leen resultados en caché:

cells.get("F1")?.put_value_i32(10)?;
cells.get("G1")?
    .put_formula_with_cached_value("=F1*2", CellValue::Number(20.0))?;

Estilos y diseño de página

CellStyle contiene Font, Fill y Borders; StyleFlag selecciona qué aspectos de estilo se aplican en una actualización. NumberFormat controla la representación del valor, y PageSetup gestiona PaperSizeType y PageOrientationType para la impresión. FreezePane y el VisibilityType de filas/columnas mantienen navegables las hojas grandes.

Comentarios, hipervínculos y nombres

Los flujos de trabajo del revisor y la navegación están cubiertos por Comment y CommentCollection, Hyperlink con HyperlinkCollection, y DefinedName con DefinedNameCollection para rangos con nombre.

Tablas estructuradas y filtros

ListObject convierte un rango en una tabla estructurada con estilo TableStyleType y filas de TotalsCalculation; AutoFilter agrega filtrado con condiciones FilterColumn y FilterOperatorType.


Inicio rápido

Agrega el crate a tu Cargo.toml como una dependencia git (el crate aún no está publicado en crates.io):

# Cargo.toml
[dependencies]
aspose-cells-foss-rust = { git = "https://github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Rust" }

Una sesión mínima de gestión de hojas de cálculo — crear, escribir, guardar, recargar:

use aspose_cells_foss_rust::{CellValue, Workbook};
use std::error::Error;

fn main() -> Result<(), Box<dyn Error>> {
    let mut workbook = Workbook::new();
    {
        let mut worksheets = workbook.get_worksheets_mut();
        let sheet = worksheets.get(0)?;
        let mut cells = sheet.get_cells_mut();

        cells.get("A1")?.put_value_string("Item")?;
        cells.get("B1")?.put_value_string("Quantity")?;
        cells.get("A2")?.put_value_string("Apples")?;
        cells.get("B2")?.put_value_i32(12)?;
    }
    workbook.save("inventory.xlsx")?;

    let loaded = Workbook::load_xlsx("inventory.xlsx")?;
    let sheet = loaded.worksheet("Sheet1")?;
    let cells = sheet.get_cells();
    println!("A2 = {}", cells.get("A2")?.display_string_value());

    Ok(())
}

Formatos compatibles

FormatoExtensiónLeerEscribir
XLSX.xlsx

La carga acepta banderas de reparación LoadOptions (try_repair_package, try_repair_xml) con LoadDiagnostics estructurado; el guardado se realiza mediante save, save_xlsx o save_with_format con el enumerado SaveFormat.


Código abierto y licencias

Aspose.Cells FOSS para Rust tiene licencia MIT. El código fuente se encuentra en GitHub; el uso comercial, la modificación y la redistribución están permitidos.


Primeros pasos

Recursos relacionados