スプレッドシート管理の操作

スプレッドシート管理の操作

スプレッドシート管理の操作

スプレッドシート管理は、クレートの日常的なオブジェクト表面であるワークシート、セルコレクション、型付き値、数式、スタイリング、およびワークブックを利用可能にする構造的機能をカバーします。エントリーポイントは常に Workbook です。


Worksheets

シートはワークブックのワークシートコレクションを介して管理されます — 読み取りアクセスは get_worksheets、変更は get_worksheets_mut を通じて行います。シートはインデックス (get(0)) または名前 (get_by_name) で指定され、set_name で名前を変更し、add_worksheet で追加されます:

let mut workbook = Workbook::new();
{
    let mut worksheets = workbook.get_worksheets_mut();
    let sheet = worksheets.get(0)?;
    sheet.set_name("Data")?;
}

セルへのアクセスと型付き値

セルは A1 形式または数値で指定されます。get_by_index(row, column) は生成されたレイアウトに適しています:

let mut cells = sheet.get_cells_mut();
cells.get("A1")?.put_value_string("Month")?;
for month in 1..=12_u32 {
    cells
        .get_by_index(month, 0)
        .put_value_string(format!("Month {month}"))?;
}

読み戻すと、display_string_value は表示テキストを返し、value_type は格納された型を報告します。


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

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

キャッシュされた値は、Excel が最初の再計算を行う前に表示するものです — これを提供すれば、ファイルの利用者はすぐに正しい結果を見ることができます。


Styling

CellStyleFontFillBorders を集約します;StyleFlag は更新が適用されるスタイルの側面を制御し、上書きしない限り既存の書式設定が保持されます。NumberFormat は値の表示方法を管理します。


ページ設定とナビゲーション

PageSetup は印刷レイアウトを管理します:PaperSizeTypePageOrientationType、および余白。FreezePane はスクロール中にヘッダー行を表示したままにし、行と列の表示/非表示は VisibilityType を使用します。


構造:テーブル、名前、コメント、ハイパーリンク

  • ListObject は範囲を構造化テーブルに変換し、TableStyleType スタイルと TotalsCalculation 合計行を提供します。
  • DefinedNameDefinedNameCollection は名前付き範囲を管理します。
  • Comment / CommentCollectionHyperlink / HyperlinkCollection は注釈とナビゲーションをカバーします。

ヒントとベストプラクティス

  • 可変借用 (get_worksheets_mut, get_cells_mut) はスコープブロック内に保ち、ブロックが閉じた後にワークブックを保存してください。
  • ループや生成されたレイアウトには get_by_index を使用し、固定位置には A1 名を使用します。
  • 無関係な書式設定に影響を与えないよう、StyleFlag を使用してスタイルを適用します。
  • 重要な範囲はアドレスをハードコーディングする代わりに、DefinedName で名前付けしてください。

一般的な問題

問題原因修正
ワークブック保存時の借用エラー可変ワークシートの借用がまだ残っているsave を呼び出す前にスコープブロックを閉じてください
Excelで数式が0を表示するキャッシュされた値が提供されていません期待される結果とともに put_formula_with_cached_value を使用してください
シートが見つかりません名前が一致しませんインデックスでアドレス指定するか、set_name のスペルを確認してください

FAQ

2番目のワークシートを追加するにはどうすればよいですか?

ワークブックで add_worksheet を呼び出し、次にインデックスまたは名前でワークシートコレクションから取得します。

同じパスで読み取りと書き込みを行うことはできますか?

はい — Workbook::load_xlsx でロードし、get_worksheets_mut で変更し、save で同じパスまたは新しいパスに保存します。

型付きセッターは値を変換しますか?

変換は行われません: 各 put_value_* セッターはそのネイティブ型を保存し、display_string_value は読み取り時に表示テキストをレンダリングします。


API Reference の概要

クラス/メソッド説明
Workbook.add_worksheetワークブックにシートを追加する
Worksheet.set_nameシートの名前を変更する
Worksheet.get_cells_mut可変セルコレクション
CellMut.put_value_string型付き文字列セッター
CellMut.put_formula_with_cached_value数式とキャッシュされた結果
CellStyleフォント、塗りつぶし、枠線の書式設定
StyleFlag適用するスタイルの側面を選択します
PageSetup印刷とページレイアウト
ListObject構造化テーブル

参照

 日本語