Wie man ein Cells FOSS Model in Rust erstellt
Aspose.Cells FOSS für Rust modelliert ein Arbeitsbuch als Baum von typisierten Objekten — Arbeitsblätter, Zellensammlungen und Regelobjekte wie Validierungen. Dieser Leitfaden erstellt ein vollständiges Arbeitsbuchmodell von Grund auf: typisierte Zellwerte, Datenvalidierungsregeln über CellArea-Bereiche und am Ende eine gespeicherte XLSX-Datei.
Schritt-für-Schritt-Anleitung
Schritt 1: Paket installieren
Füge das Crate zu deinem Cargo.toml als Cargo-git-Abhängigkeit hinzu:
# Cargo.toml
[dependencies]
aspose-cells-foss-rust = { git = "https://github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Rust" }Dann das Projekt bauen:
cargo buildSchritt 2: Erforderliche Klassen importieren
use aspose_cells_foss_rust::{
CellArea, OperatorType, ValidationAlertType, ValidationType, Workbook,
};
use std::error::Error;Schritt 3: Arbeitsmappe und Zellendaten erstellen
Starten Sie das Modell mit einem Workbook, benennen Sie das Blatt und schreiben Sie typisierte Werte:
let mut workbook = Workbook::new();
{
let mut worksheets = workbook.get_worksheets_mut();
let sheet = worksheets.get(0)?;
sheet.set_name("Validation Sheet")?;
let mut cells = sheet.get_cells_mut();
cells.get("A1")?.put_value_string("Open")?;
cells.get("B2")?.put_value_i32(5)?;
cells.get("G1")?.put_value_string("ABCDE")?;
}Schritt 4: Listenvalidierung hinzufügen
Validierungsregeln werden über die Validierungssammlung des Blattes an CellArea-Bereiche angehängt. Eine Listenvalidierung beschränkt Zellen auf feste Auswahlmöglichkeiten mit einem Dropdown im Feld:
let mut validations = sheet.get_validations();
let list_index = validations.add(CellArea::create_cell_area_a1("A1", "A3")?)?;
let mut list_validation = validations
.get(list_index)
.expect("validation should exist");
list_validation.set_type(ValidationType::List);
list_validation.set_formula1("\"Open,Closed\"");
list_validation.set_in_cell_drop_down(true);
list_validation.set_show_input(true);
list_validation.set_input_title("Status");
list_validation.set_input_message("Pick a status");Schritt 5: Bereichs- und benutzerdefinierte Regeln hinzufügen
OperatorType steuert numerische Bereichsregeln, und ValidationType::Custom akzeptiert eine Formel; ValidationAlertType wählt die Alarm-Schwere aus:
let decimal_index = validations.add(CellArea::create_cell_area_a1("B2", "C3")?)?;
let mut decimal_validation = validations
.get(decimal_index)
.expect("validation should exist");
decimal_validation.set_type(ValidationType::Decimal);
decimal_validation.set_operator(OperatorType::Between);
decimal_validation.set_formula1("1.5");
decimal_validation.set_formula2("9.5");
decimal_validation.set_show_error(true);
let custom_index = validations.add(CellArea::create_cell_area_a1("G1", "G1")?)?;
let mut custom_validation = validations
.get(custom_index)
.expect("validation should exist");
custom_validation.set_type(ValidationType::Custom);
custom_validation.set_alert_style(ValidationAlertType::Warning);
custom_validation.set_formula1("LEN(G1)<=5");Schritt 6: Modell speichern
workbook.save("validations-sample.xlsx")?;Die gespeicherte Datei öffnet sich in Excel mit den Dropdowns, Bereichsprüfungen und der benutzerdefinierten Regel aktiv.
Häufige Probleme und Lösungen
Die Validierung hat in Excel keine sichtbare Wirkung. Aktivieren Sie die Eingabeaufforderungen: set_show_input / set_show_error Steuern Sie, ob der Eingabehinweis und die Fehlermeldung angezeigt werden.
Eine Regel sollte mehrere separate Bereiche abdecken. Fügen Sie einer bestehenden Regel weitere Bereiche hinzu mit add_area und zusätzliche CellArea::create_cell_area_a1 Bereiche.
Fehler übernehmen beim Hinzufügen von Validierungen. Behalte das Worksheet-Leihen-Scoping bei: fetch get_validations innerhalb desselben Blocks wie die Mutationen und speichere das Workbook, nachdem der Block endet.
Listenoptionen werden fälschlich als Formel gelesen. Umhülle die Optionen in escaped quotes exakt wie gezeigt: set_formula1("\"Open,Closed\"").
Häufig gestellte Fragen
Welche Validierungstypen sind verfügbar?
ValidationType enthält List, Decimal und Custom, wie hier gezeigt — Listen-Dropdowns, numerische Bereiche über OperatorType und formelbasierte Regeln.
Können Validierungen benutzerdefinierte Meldungen anzeigen?
Ja — set_input_title / set_input_message steuern die Eingabeaufforderung, und set_error_title / set_error_message steuern die Fehlermeldung.
Übersteht das Modell einen Round-Trip?
Ja. Speichern Sie mit Workbook::save und laden Sie mit Workbook::load_xlsx erneut; die Validierungsregeln bleiben in der XLSX-Datei erhalten.