浮動画像
画像をワークシートの任意の位置に表示するには浮動画像を利用します。 ReoGrid では画像をセルの中に格納する機能もあります。その機能については、「内蔵セル型」の画像(ImageCell)をご覧ください。
Excel に画像を出力する、または Excel から画像を読み込む場合、浮動画像の利用が必要です。このドキュメントは浮動画像について説明します。
ワークシートに浮動画像を追加する
浮動画像を作成するには、ImageObject
クラスを利用します。このクラスは以下の名前空間にあります。
unvell.ReoGrid.Drawing
浮動画像を作成してワークシートに追加するソースコードは以下の通りです。
// ワークシートのインスタンスを取得する
var worksheet = reoGridControl.Worksheets[0];
// .NET 画像オブジェクトを作成する
var image = Image.FromFile("Sample.png");
// 浮動画像オブジェクトを作成する
var imageObject = new Drawing.ImageObject(image)
{
// 画像をワークシートに表示する位置を設定する
Location = new Graphics.Point(40, 30),
};
// 浮動画像をワークシートに追加する
worksheet.FloatingObjects.Add(imageObject);
ワークシートから画像を取得する
浮動画像を取得するにはすべての浮動オブジェクトを照合する必要があります。浮動画像は浮動オブジェクトから継承しているため、浮動オブジェクトの型チェックを行って浮動画像のオブジェクトを取得します。
// ワークシートのすべての浮動オブジェクトを取得する
foreach (var floatingObject in worksheet.FloatingObjects)
{
// 浮動オブジェクトが浮動画像であるかをチェックする
if (floatingObject is Drawing.ImageObject)
{
// 浮動画像の型に変換する
var imageObject = (Drawing.ImageObject)floatingObject;
// ... 浮動画像についての処理 ...
}
}
浮動画像の表示位置、サイズを取得・設定する
プロパティ Location
は浮動画像の表示位置です。
imageObject.Location = new Graphics.Point(40, 30);
プロパティ Size
が浮動画像のサイズです。浮動画像を作成した当初は、サイズが画像の実際のサイズになります。
imageObject.Size = new Graphics.Size(200, 100);
位置とサイズを一緒に設定したい場合、Bounds
プロパティを利用します。
imageObject.Bounds = new Graphics.Rectangle(200, 100, 80, 60);
Excel フォーマットについて
浮動画像がワークシートに追加された場合、自動的に Excel に出力されます。Excel ファイルを読み込む場合、浮動画像は自動的に読み込まれます。
浮動オブジェクトについて
浮動オブジェクトはワークシートに追加できるすべての描画オブジェクトの親クラスです。ワークシートにあるすべての浮動オブジェクトのコレクションはプロパティ FloatingObjects
です。
Worksheet.FloatingObjects