バージョン

画像をワークシートに追加 (Infragistics Excel Engine)

トピックの概要

目的

このトピックでは、事前定義された形状を Infragistics Excel Engine を使用して、画像をワークシートに追加する方法を説明します。

前提条件

このトピックを理解するために、以下のトピックを参照することをお勧めします。

トピック 目的

このセクションでは、 Infragistics Excel Engine のオブジェクト モデルと機能をより深く理解するうえで役立つ情報を提供します。

Infragistics Excel Engine を使用し素早く起動して実行するために、このトピックではワークブックを作成する方法を説明します。

このトピックの内容

このトピックは、以下のセクションで構成されます。

画像をワークシートに追加

概要

この手順では、ワークシートに画像を追加する方法を示します。画像は WorksheetImage クラスによって表され、ワークシートの Shapes コレクションに追加されます。

プレビュー

以下のスクリーンショットは、すべての任意のステップを含む最終結果のプレビューです。

ExcelEngine 04.png

前提条件

この手順を実行するには、以下が必要です。

少なくとも 1 つのワークシートを持つ初期化されたワークブック。

概要

以下はプロセスの概要です。

  1. ストリームから画像を作成する

  2. 画像から WorksheetImage を作成する

  3. twips で WorksheetImage の位置を構成する (オルタナティブ)

  4. WorksheetImage のセルの位置を構成する (オルタナティブ)

  5. WorksheetImage のセル内の位置を構成する (オルタナティブおよびオプション)

  6. WorksheetImage のプロパティを構成する (オプション)

  7. WorksheetImage をワークシートの Shapes コレクションに追加する

手順

以下のステップでは、画像をワークシートに追加する方法を示します。

1.ストリームから画像を作成する

Image オブジェクトを作成します。ストリームまたはファイル名を提供することにより、Image クラスの静的メソッドを使用して、これを実行できます。

C# の場合:

string imgResource = "Assembly.Folder.File.png";
using (Stream stream = this.GetType().Assembly.GetManifestResourceStream(imgResource))
{
    System.Drawing.Image img = System.Drawing.Image.FromStream(stream);
}

Visual Basic の場合:

Dim imgResource As String = "Assembly.Folder.File.png"
Using stream As Stream = Me.[GetType]().Assembly.GetManifestResourceStream(imgResource)
    Dim img As System.Drawing.Image = System.Drawing.Image.FromStream(stream)
End Using

2.画像から WorksheetImage を作成する

前述の手順から Image インスタンスを提供することにより、WorksheetImage オブジェクトを作成します。

C# の場合:

WorksheetImage wsi = new WorksheetImage(img);

Visual Basic の場合:

Dim wsi As WorksheetImage  = new WorksheetImage(img)

3.twips で WorksheetImage の位置を構成する (オルタナティブ)

SetBoundsInTwips メソッドを使用して、画像の境界線を twips で指定する必要があります。

C# の場合:

Graphics gfx = Graphics.FromImage(img);
wsi.SetBoundsInTwips(
this.xamSpreadsheet1.Workbook.Worksheets[0],
new Rect(
 PixelsToTwips(50, gfx), // 左 = 50
 PixelsToTwips(50, gfx), // 上 = 50
 PixelsToTwips(img.Width, gfx),
 PixelsToTwips(img.Height, gfx)));

Visual Basic の場合:

Dim gfx As Graphics = Graphics.FromImage(img)
' left = 50
' top = 50
wsi.SetBoundsInTwips(xamSpreadsheet1.Workbook.Worksheets(0), _
                    New Rect(PixelsToTwips(50, gfx), _
                    PixelsToTwips(50, gfx), _
                    PixelsToTwips(img.Width, gfx), _
                    PixelsToTwips(img.Height, gfx)))

C# の場合:

public double PixelsToTwips(int pixels, Graphics gfx)
{
    // ピクセルをポイントに変換します
    double p = pixels * 72 / gfx.DpiX;
    // ポイントを twips に変換します
    return p * 20;
}

Visual Basic の場合:

Public Function PixelsToTwips(pixels As Integer, gfx As Graphics) As Double
' convert pixels to points
Dim p As Double = pixels * 72 / gfx.DpiX
' convert points to twips
Return p * 20
End Function
Note
注:

手順 4 と 5 のオルタナティブとして、この手順を使用します。

4.WorksheetImage のセルの位置を構成する (オルタナティブ)

TopLeftCornerCell プロパティと BottomRightCornerCell プロパティを使用して、画像を使用するセルを指定する必要があります。

C# の場合:

wsi.TopLeftCornerCell = this.xamSpreadsheet1.Workbook.Worksheets[0].Rows[3].Cells[2];
wsi.BottomRightCornerCell = this.xamSpreadsheet1.Workbook.Worksheets[0].Rows[5].Cells[5];

Visual Basic の場合:

wsi.TopLeftCornerCell = xamSpreadsheet1.Workbook.Worksheets(0).Rows(3).Cells(2)
wsi.BottomRightCornerCell = xamSpreadsheet1.Workbook.Worksheets(0).Rows(5).Cells(5)
Note
注:

手順 3 のオルタナティブとして、このステップを使用します。

5.WorksheetImage のセル内の位置を構成する (オルタナティブおよびオプション)

また、 TopLeftCornerPosition プロパティと BottomRightCornerPosition プロパティを使用して、左上と右下のコーナーの正確な位置を指定できます。これらの位置はパーセンテージ値で指定されるため、いずれかのコーナーをセルの中央に置きたい場合は、両方のプロパティに Point(50, 50) を使用します。

以下のコードはこの例を実装します。

C# の場合:

wsi.TopLeftCornerPosition = new System.Windows.Point(50, 50);
wsi.BottomRightCornerPosition = new System.Windows.Point(50, 50);

Visual Basic の場合:

wsi.TopLeftCornerPosition = new System.Windows.Point(50, 50)
wsi.BottomRightCornerPosition = new System.Windows.Point(50, 50)
Note
注:

手順 3 のオルタナティブとして、このオプション手順を使用します。

6.WorksheetImage のプロパティを構成する (オプション)

画像の背景が透明である場合、ワークシートのグリッド線が表示されないように、画像の背景色を設定できます。

また、任意のアウトラインを WorksheetImage インスタンスに設定 (または既定のアウトラインを削除) できます

以下のコードは、WorksheetImage に白い背景を追加し、デフォルトのアウトラインを削除する方法を示します。

C# の場合:

wsi.Fill = new ShapeFillSolid(Colors.White);
wsi.Outline = null;

Visual Basic の場合:

wsi.Fill = new ShapeFillSolid(Colors.White)
wsi.Outline = Nothing

7.WorksheetImage をワークシートの Shapes コレクションに追加する

WorksheetImage インスタンスを Shapes コレクションに追加します。

以下のコードはこの例を実装します。

C# の場合:

this.xamSpreadsheet1.Workbook.Worksheets[0].Shapes.Add(wsi);

Visual Basic の場合:

xamSpreadsheet1.Workbook.Worksheets(0).Shapes.Add(wsi)

関連コンテンツ

トピック

このトピックの追加情報については、以下のトピックも合わせてご参照ください。

トピック 目的

このトピックでは、Infragistics Excel Engine を使用してワークシートにハイパーリンクを追加する方法について、手順を追って説明します。

このトピックでは、事前定義された図形をワークシートに追加する方法を説明します。