はじめに
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_mut や get_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 を通じて行われ、Font、Fill、Borders が含まれ、StyleFlag で選択的に適用されます。PageSetup は印刷時の用紙サイズと向きを制御し、FreezePane はヘッダー行を常に表示させ、構造化テーブルは TableStyleType を持つ ListObject で提供されます。
検証、条件付き書式、フィルター
データ品質機能はコア機能の一部です:OperatorType を伴う Validation ルール、FormatCondition による条件付き書式、AutoFilter によるオートフィルタ、DefinedName による定義名、そして WorkbookProtection と WorksheetProtection によるブックやシートの保護です。
診断付き防御的ロード
実際の 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_xlsx と Workbook::save を介した完全なラウンドトリップの読み取りと書き込みが可能で、LoadFormat と SaveFormat 列挙型が明示的なフォーマット選択を管理します。
オープンソース & ライセンス
Aspose.Cells FOSS for Rust は MIT ライセンスです。完全なソースコードは GitHub で入手可能で、ライセンスは商用利用、改変、再配布を許可しています。