Aspose.Cells FOSS for Rust es una biblioteca de código abierto para trabajar con hojas de cálculo Excel XLSX en aplicaciones Rust. Proporciona a los programadores de sistemas una forma nativa y segura en memoria de crear libros de trabajo desde cero, cargar archivos XLSX existentes, modificar su contenido y guardar el resultado — sin Microsoft Office, automatización COM, ni ningún tiempo de ejecución externo.
La crate modela el árbol completo de objetos de la hoja de cálculo: Workbook, Worksheet, y colecciones de celdas con establecedores de valores tipados (put_value_string, put_value_i32, put_value_bool, put_value_decimal), fórmulas con valores en caché mediante put_formula_with_cached_value, gráficos (Chart, ChartType), formato condicional (FormatCondition), validación de datos (Validation), auto-filtros (AutoFilter), estilo de celdas (CellStyle, Font, Fill, Borders), configuración de página (PageSetup), imágenes, formas, comentarios, hipervínculos, tablas (ListObject), minigráficos (SparklineGroup), nombres definidos y protección de libros/hojas.
Aspose.Cells FOSS for Rust tiene licencia MIT y está dirigida a la edición 2021 de Rust. Se instala como una dependencia estándar de Cargo desde el repositorio de GitHub — consulte la guía de instalación para la entrada exacta de Cargo.toml. Los errores se exponen mediante los tipos convencionales Result (CellsError), y la carga de XLSX ofrece opciones de reparación (LoadOptions) con diagnósticos estructurados (LoadDiagnostics). Para la familia de productos empresariales, vea Aspose.Cells — Enterprise Product Family.
Workbook::new o carga archivos existentes con Workbook::load_xlsxadd_worksheet, worksheet y colecciones mutables de hojas de cálculosave, save_xlsx o con formato explícito save_with_formatput_value_string, put_value_i32, put_value_bool, put_value_decimal, put_value_date_timeput_formula_with_cached_valuedisplay_string_value y value_typeget, get_by_index)CellStyle con Font, Fill y BordersStyleFlagNumberFormatPageSetup (tamaño de papel, orientación, márgenes)FreezePane; controlar la visibilidad de filas/columnasChartType en la colección de gráficos de una hojaChart, ChartCollection)Picture y formas de dibujo con ShapeSparklineGroupFormatConditionValidation con OperatorTypeAutoFilter; tablas estructuradas mediante ListObjectDefinedName; protección mediante WorkbookProtection y WorksheetProtectionLoadOptions y LoadDiagnosticsCree un libro de trabajo, escriba valores tipados y una fórmula con un resultado en caché, guárdelo como XLSX y cárguelo de nuevo:
use aspose_cells_foss_rust::{CellValue, Workbook};
use std::error::Error;
fn main() -> Result<(), Box<dyn Error>> {
// Create a new workbook (starts with one sheet, "Sheet1").
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("Hello")?;
cells.get("B1")?.put_value_i32(123)?;
cells.get("C1")?.put_value_bool(true)?;
cells.get("D1")?.put_value_decimal(12.5)?;
cells.get("F1")?.put_value_i32(10)?;
cells.get("G1")?
.put_formula_with_cached_value("=F1*2", CellValue::Number(20.0))?;
}
workbook.save("hello.xlsx")?;
// Load it back.
let loaded = Workbook::load_xlsx("hello.xlsx")?;
let sheet = loaded.worksheet("Sheet1")?;
let cells = sheet.get_cells();
println!("A1 = {}", cells.get("A1")?.display_string_value());
Ok(())
}
Abra libros de trabajo de forma defensiva con las banderas de reparación de LoadOptions y examine los diagnósticos de carga estructurados:
let options = LoadOptions {
try_repair_package: true,
try_repair_xml: true,
..LoadOptions::default()
};
let loaded = Workbook::load_xlsx_with_options(&valid_path, &options)?;
let sheet = loaded.worksheet("Sheet1")?;
let cells = sheet.get_cells();
println!("Saved: {}", valid_path.display());
println!(
"Loaded workbook with {} worksheet(s) and {} diagnostic issue(s).",
loaded.get_worksheets().count(),
loaded.get_load_diagnostics().issues().len()
);
Rellena un rango de datos, luego ancla los gráficos de columnas y de líneas a él:
let mut charts = sheet.get_charts();
charts.add(
ChartType::Column,
"Charts!$B$1:$B$13".to_string(),
0,
4,
18,
8,
)?;
charts.add(
ChartType::Line,
"Charts!$C$1:$C$13".to_string(),
0,
9,
18,
13,
)?;
El crate se publica bajo la MIT License; el texto completo se envía en el repositorio como LICENSE.txt.
Sí. La Licencia MIT permite el uso comercial, la modificación y la redistribución, siempre que se conserve el aviso de derechos de autor y la licencia.
Agrega aspose-cells-foss-rust a tu Cargo.toml como una dependencia git del repositorio de GitHub.
XLSX, con lectura y escritura de ida y vuelta completas mediante Workbook::load_xlsx y save. Otros formatos de hoja de cálculo no son compatibles en la versión actual.
No. La biblioteca lee y escribe el formato de paquete XLSX directamente — no se requiere instalación de Office, automatización COM o tiempo de ejecución externo.