はじめに

Aspose.Cells FOSS for Rust は Aspose.Cells FOSS ファミリーを Rust エコシステムにもたらします。aspose-cells-foss-rust クレートを使用すると、Rust アプリケーションは Excel XLSX ブックをゼロから作成したり、既存ファイルを読み込んだり、内容を変更したり、結果を保存したりできます — Microsoft Office のインストールや COM オートメーション、外部ランタイムは不要です。

このクレートは MIT ライセンスで、Rust エディション 2021 を対象としています。Rust 開発者が期待する慣習に従っており、Workbook::new のようなコンストラクタ、CellsError を介した Result ベースのエラーハンドリング、get_worksheets_mutget_cells_mut といった明示的な可変アクセサが借用規則を明確に保ちます。バックエンドサービス、CLI ツール、またはスプレッドシートの生成・消費が必要なデータパイプラインを構築する場合、このライブラリはネイティブな方法を提供します。

このセクションは、最新の製品動作および API カバレッジについて、現在のソースモデルと照らし合わせてレビューされています。

Aspose.Cells FOSS はすでに .NET、C++、Java、Python、および TypeScript 向けに提供されています;Rust クレートは同じ焦点でファミリーに加わります:寛容なライセンスの下で正直かつ検証可能な XLSX サポートを提供します。


含まれるもの

ワークブック、ワークシート、そして型付きセル値

Workbook は最初に 1 つのワークシートで始まり、add_worksheet によって増やすことができます。セルは文字列、整数、ブール値、十進数、日時といった型付きの値を専用のセッターで受け取るため、文字列ベースの変換は不要です:

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)?;
}
workbook.save("hello.xlsx")?;

キャッシュされた結果を持つ数式

数式はキャッシュされた値とともに書き込まれるため、保存されたファイルは Excel で開いた瞬間に正しい結果が表示され、再計算は不要です:

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

データ範囲にアンカーされたチャート

ChartType 列挙型の Column、Line、その他のチャートタイプはワークシート上のセル範囲にアンカー付けでき、ロードしたファイルからチャートのジオメトリを読み戻すこともできます:

let mut charts = sheet.get_charts();
charts.add(
    ChartType::Column,
    "Charts!$B$1:$B$13".to_string(),
    0,
    4,
    18,
    8,
)?;

スタイリング、ページ設定、構造

セルの書式設定は CellStyle を通じて行われ、FontFillBorders が含まれ、StyleFlag で選択的に適用されます。PageSetup は印刷時の用紙サイズと向きを制御し、FreezePane はヘッダー行を常に表示させ、構造化テーブルは TableStyleType を持つ ListObject で提供されます。

検証、条件付き書式、フィルター

データ品質機能はコア機能の一部です:OperatorType を伴う Validation ルール、FormatCondition による条件付き書式、AutoFilter によるオートフィルタ、DefinedName による定義名、そして WorkbookProtectionWorksheetProtection によるブックやシートの保護です。

診断付き防御的ロード

実際の XLSX ファイルは必ずしも整形式とは限りません。LoadOptions は修復フラグを公開し、LoadDiagnostics はローダーが検出した内容を報告します:

let options = LoadOptions {
    try_repair_package: true,
    try_repair_xml: true,
    ..LoadOptions::default()
};

let loaded = Workbook::load_xlsx_with_options(&valid_path, &options)?;
println!(
    "Loaded workbook with {} worksheet(s) and {} diagnostic issue(s).",
    loaded.get_worksheets().count(),
    loaded.get_load_diagnostics().issues().len()
);

クイックスタート

クレートを Cargo.toml に git 依存として追加してください(このクレートはまだ crates.io で公開されていません):

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

次に、最初のブックを作成し、保存し、再読み込みします:

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("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(())
}

サポートされている形式

フォーマット拡張子読み取り書き込み
XLSX.xlsx

XLSX は現在のリリースの焦点です: Workbook::load_xlsxWorkbook::save を介した完全なラウンドトリップの読み取りと書き込みが可能で、LoadFormatSaveFormat 列挙型が明示的なフォーマット選択を管理します。


オープンソース & ライセンス

Aspose.Cells FOSS for Rust は MIT ライセンスです。完全なソースコードは GitHub で入手可能で、ライセンスは商用利用、改変、再配布を許可しています。


はじめに

関連リソース