Introduzione
La gestione dei fogli di calcolo è il nucleo del crate aspose-cells-foss-rust: gli oggetti che modellano una cartella di lavoro, i suoi fogli e le loro celle, e le operazioni che trasformano i dati Rust in file XLSX presentabili. Questo post esplora quella superficie — dalla creazione dei fogli e scrittura di valori tipizzati allo styling, layout di pagina e le funzionalità strutturali che rendono le cartelle di lavoro utilizzabili: commenti, collegamenti ipertestuali, tabelle e nomi definiti.
Tutto ciò che è mostrato qui fa parte del crate open-source con licenza MIT. Nessuna installazione di Microsoft Office è coinvolta in alcun momento; la libreria legge e scrive direttamente il formato del pacchetto XLSX.
Questa sezione è stata revisionata rispetto al modello sorgente attuale per il comportamento più recente del prodotto e la copertura di API.
Caratteristiche principali
Foglio di lavoro e collezioni di celle
I fogli di lavoro sono gestiti tramite le collezioni di fogli di lavoro della cartella. I fogli sono indicizzati per indice o nome, rinominati con set_name, e le loro celle sono accessibili tramite get_cells (lettura) o get_cells_mut (scrittura):
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")?;
}
}
Valori tipizzati per nome o indice
Le celle accettano stringhe, interi, booleani, decimali e date/ora tramite setter tipizzati. Le celle possono essere indirizzate in stile A1 (get("B3")) o numericamente (get_by_index(row, column)), il che si adatta a layout generati:
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))?;
}
Formule con valori memorizzati nella cache
put_formula_with_cached_value memorizza il testo della formula insieme al valore che Excel dovrebbe visualizzare prima della prima ricalcolazione — importante quando il file è consumato da altri strumenti che leggono i risultati memorizzati:
cells.get("F1")?.put_value_i32(10)?;
cells.get("G1")?
.put_formula_with_cached_value("=F1*2", CellValue::Number(20.0))?;
Stile e layout di pagina
CellStyle contiene Font, Fill e Borders; StyleFlag seleziona quali aspetti dello stile vengono aggiornati. NumberFormat controlla il rendering del valore, e PageSetup gestisce PaperSizeType e PageOrientationType per la stampa. FreezePane e il VisibilityType di righe/colonne mantengono navigabili i fogli di grandi dimensioni.
Commenti, collegamenti ipertestuali e nomi
I flussi di lavoro e la navigazione del revisore sono gestiti da Comment e CommentCollection, Hyperlink con HyperlinkCollection, e DefinedName con DefinedNameCollection per gli intervalli denominati.
Tabelle strutturate e filtri
ListObject trasforma un intervallo in una tabella strutturata con lo stile TableStyleType e righe TotalsCalculation; AutoFilter aggiunge il filtraggio con condizioni FilterColumn e FilterOperatorType.
Avvio rapido
Aggiungi il crate al tuo Cargo.toml come dipendenza git (il crate non è ancora pubblicato su crates.io):
# Cargo.toml
[dependencies]
aspose-cells-foss-rust = { git = "https://github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Rust" }Una sessione minima di gestione di fogli di calcolo — crea, scrivi, salva, ricarica:
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(())
}
Formati supportati
| Formato | Estensione | Leggi | Scrivi |
|---|---|---|---|
| XLSX | .xlsx | ✓ | ✓ |
Il caricamento accetta i flag di riparazione LoadOptions (try_repair_package, try_repair_xml) con LoadDiagnostics strutturato; il salvataggio avviene tramite save, save_xlsx o save_with_format con l’enumerazione SaveFormat.
Open Source e Licenze
Aspose.Cells FOSS per Rust è con licenza MIT. Il codice sorgente è ospitato su GitHub; l’uso commerciale, la modifica e la ridistribuzione sono consentiti.
Guida introduttiva
- Guida introduttiva
- Guida per sviluppatori
- Lavorare con la gestione dei fogli di calcolo
- Articoli KB
- API Reference
- Pagina del prodotto