パッケージは unvell.ReoGrid.One.Avalonia、名前空間は unvell.ReoGrid.Avalonia です。 Windows / Linux / macOS で動作する唯一の GUI パッケージです。

導入とサンプルは Avalonia で始める を参照してください。

依存関係

このパッケージだけは Avalonia(11.3.17)への PackageReference を持ちます。 コントロールは利用側アプリと同じ Avalonia にバインドする必要があるためです。

他の 3 パッケージ(One / One.Wpf / One.Core)は依存パッケージを持ちません。

対象フレームワークは net10.0 です(-windows は付きません)。

構造

ReoGridControlAvalonia.Controls.Control の派生です。描画は AvaloniaGraphicsDrawingContext ベース)で行います。

WPF と同じく DIP が論理ピクセルと一致するため、DPI 変換は不要です。

メンバー

分類メンバー
ワークブックWorkbook ActiveWorksheet SetWorksheet LoadWorkbook NewWorkbook LoadJson
選択Selection ActiveCell SelectionChanged
編集BeginEdit CancelEdit IsEditing SetActiveCellInput
表示Zoom ZoomChanged SetFreeze
書式MutateSelectionStyle SetSelectionCellType ほか
履歴Undo Redo CanUndo CanRedo
イベントWorkbookChanged ActiveSheetChanged ContextMenuRequested CellButtonClicked HistoryChanged

RenderTo(context, width, height) で任意の DrawingContext へ描画できます。

using unvell.ReoGrid.Avalonia;
using unvell.ReoGrid.Core;

grid.NewWorkbook();
Worksheet ws = grid.ActiveWorksheet;
ws.SetText(0, 0, "支店");
ws.SetFormula(1, 3, "B2+C2");

grid.SelectionChanged += (_, _) =>
	Console.WriteLine($"{grid.ActiveCell.Row},{grid.ActiveCell.Col}");

grid.CellButtonClicked += (_, e) =>
	Console.WriteLine($"ボタンが押された: {e.Cell.Row},{e.Cell.Col}");

// 履歴・ズーム・枠固定はコントロール側の API(3 プラットフォーム共通)
grid.SetFreeze(rows: 1, cols: 1);
grid.Zoom = 1.25;
if (grid.CanUndo) grid.Undo();

他プラットフォームとの差

WinForms / WPFAvalonia
動作環境Windows のみWindows / Linux / macOS
依存なしAvalonia
印刷CreatePrintDocument()(WinForms)/ Print()(WPF)未対応(PDF 出力を使う)

差は印刷だけです。履歴・編集・書式・クリップボード・アウトラインの API は 3 プラットフォームで同じです。

印刷が無いのは Avalonia に共通の印刷 API が無いためです。用紙への出力が必要な場合は PDF 出力 を使ってください。PDF は日本語フォントを埋め込むため、 Linux 上でもフォント構成に依存せず出力できます。

フォント

Linux では日本語フォントがインストールされていないと画面表示で文字が出ないことがあります。 Avalonia のフォント設定でフォールバックを指定してください。

PDF 出力はこの影響を受けません(フォントが DLL に埋め込まれているため)。

次に読む

ページの内容は役に立ちましたか?