RustでCells FOSSモデルを作成する方法

RustでCells FOSSモデルを作成する方法

Aspose.Cells FOSS for Rust は、ワークブックを型付きオブジェクトのツリー(ワークシート、セルコレクション、バリデーションなどのルールオブジェクト)としてモデル化します。このガイドでは、ゼロから完全なワークブックモデルを構築します:型付きセル値、CellArea 範囲に対するデータバリデーションルール、そして最後に保存されたXLSXファイルです。

ステップバイステップガイド

ステップ 1: パッケージをインストール

クレートをCargo.tomlに Cargo の Git 依存として追加します:

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

その後、プロジェクトをビルドします:

cargo build

ステップ 2: 必要なクラスをインポート

use aspose_cells_foss_rust::{
    CellArea, OperatorType, ValidationAlertType, ValidationType, Workbook,
};
use std::error::Error;

ステップ 3: ワークブックとセルデータを作成

モデルを Workbook で開始し、シートに名前を付け、型付きの値を書き込みます:

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")?;
}

ステップ 4: リスト検証を追加

検証ルールはシートの検証コレクションを通じて CellArea 範囲に付加されます。リスト検証はセルを固定された選択肢に制限し、セル内ドロップダウンで表示します:

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");

ステップ 5: 範囲およびカスタムルールを追加

OperatorType は数値範囲ルールを制御し、ValidationType::Custom は数式を受け入れます;ValidationAlertType はアラートの重大度を選択します:

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");

ステップ 6: モデルを保存

workbook.save("validations-sample.xlsx")?;

保存したファイルを Excel で開くと、ドロップダウン、範囲チェック、カスタムルールが有効になっています。

一般的な問題と対策

検証は Excel で目に見える効果がありません。 プロンプトを有効にする: set_show_input / set_show_error 入力ヒントとエラー アラートが表示されるかどうかを制御します。

ルールは複数の個別の範囲をカバーすべきです。 既存のルールにさらに範囲を追加するには add_area および追加の CellArea::create_cell_area_a1 範囲。

検証を追加する際にエラーを借用する。 ワークシートの borrow をスコープ内に保つ: fetch get_validations ミューテーションと同じブロック内で、ブロックが終了した後にワークブックを保存します。

リストの選択肢が数式として誤認識されます。 示されている通り、選択肢をエスケープされたクオートで囲んでください: set_formula1("\"Open,Closed\"").

よくある質問

利用可能な検証タイプはどれですか?

ValidationType はここに示すように List、Decimal、Custom を含みます — リストドロップダウン、OperatorType による数値範囲、そして数式ベースのルール。

検証でカスタムメッセージを表示できますか?

はい — set_input_title / set_input_message がプロンプトを制御し、set_error_title / set_error_message が失敗アラートを制御します。

モデルは往復しても保持されますか?

はい。Workbook::save で保存し、Workbook::load_xlsx で再ロードすると、検証ルールは XLSX ファイルに保持されます。

参照

 日本語