【C#/VB】ClosedXMLでExcelに画像プロパティを指定する方法

【C#/VB】ClosedXMLでExcelに画像プロパティを指定する方法
目次

今回はC#/VBのライブラリであるClosedXMLで、Excelの画像のプロパティを指定する方法を紹介します。

ClosedXMLでの画像の指定

Excelでは、画像(図形)の動作をセルに関連付けるプロパティで、画像がセルの移動やサイズ変更にどう反応するかを指定することができます。

ClosedXMLでは、そのプロパティをXLPicturePlacementで指定することができます。

Program.cs
 1// 画像を貼り付ける
 2IXLPicture image = ws.AddPicture(@"C:\test\image.jpg");
 3
 4// 画像のプロパティを「セルに合わせて移動やサイズ変更をする」に指定する
 5image.Placement = XLPicturePlacement.MoveAndSize;
 6
 7// 画像のプロパティを「セルに合わせて移動するがサイズ変更はしない」に指定する
 8image.Placement = XLPicturePlacement.Move;
 9
10// 画像のプロパティを「セルに合わせて移動やサイズ変更をしない」に指定する
11image.Placement = XLPicturePlacement.FreeFloating;

「セルに合わせて移動やサイズ変更をする」を指定すれば、セルの動作に画像が連動し、フィルター使用時も画像を連動させることができます。

MoveAndSizeを指定する場合の注意点

MoveAndSize(セルに合わせて移動やサイズ変更をする)を指定する際、moveメソッドは以下の形式で指定する必要があります。

Program.cs
1image.MoveTo(IXLCell fromCell, Point fromOffset, IXLCell toCell, Point toOffset)

異なる形式を使うと、エクセルの画像がおかしくなることがあるようです。


今回はClosedXMLでのExcelの画像のプロパティを指定する方法について紹介しました。以上で記事を終わりにします。

参考文献