画像はセルを基準に配置します。ws.Images(SheetImageTable)が保持します。

名前空間は unvell.ReoGrid.Core.Drawing です。
追加する
using unvell.ReoGrid.Core;
using unvell.ReoGrid.Core.Drawing;
var image = new SheetImage
{
Id = ws.Images.NextId(),
MimeType = "image/png",
Data = File.ReadAllBytes("logo.png"),
AnchorKind = ImageAnchorKind.OneCell,
From = new ImageAnchor(Row: 1, Col: 1, OffsetX: 4, OffsetY: 4),
Width = 160,
Height = 48,
};
ws.Images.Add(image);
画像データはバイト列としてシートに保持されます。外部ファイルへの参照ではないため、 XLSX に保存したファイルは自己完結します。
アンカーの方式
// 2 セル固定 — 行や列のサイズ変更に合わせて画像も伸縮する
ws.Images.Add(new SheetImage
{
Id = ws.Images.NextId(),
Data = File.ReadAllBytes("chart.png"),
AnchorKind = ImageAnchorKind.TwoCell,
From = new ImageAnchor(1, 1, 0, 0),
To = new ImageAnchor(10, 6, 0, 0),
});
| 方式 | 挙動 |
|---|---|
OneCell | 左上だけをセルに固定。サイズは Width / Height で固定 |
TwoCell | 左上と右下をセルに固定。行・列のサイズ変更で伸縮する |
ImageAnchor は行・列に加えてセル内のオフセット(論理ピクセル)を持ちます。
管理する
int count = ws.Images.Count;
bool any = ws.HasImages;
foreach (SheetImage img in ws.Images.Items)
Console.WriteLine($"{img.Id} {img.MimeType} {img.FileExtension}");
ws.Images.Remove("image1");
ws.Images.Clear();
ws.HasImages はテーブルを生成せずに判定します。
対応形式
PNG と JPEG です。MimeType に image/png / image/jpeg を指定します。
描画される場所
すべての描画面で描かれます — 画面(WinForms / WPF / Avalonia)、印刷、PDF 出力。
viewport.ShowImages = false で非表示にできます(エクスポート用途など)。
PDF では画像がそのまま埋め込まれます。
構造変更への追従
行や列を挿入・削除すると、アンカーは自動的に追従します。
保存
XLSX に往復します。drawing パーツとして読み書きされるため、Excel で開いても 同じ位置に表示されます。reogrid-json には保存されません — JSON 形式に 画像を残す必要がある場合は XLSX をお使いください。
制限
- 図形・テキストボックスは未対応です。 現時点で扱えるのはビットマップ画像のみです
- 画像の回転・トリミングには対応していません
次に読む
- ビューポート
- XLSX 入出力