Excel for .NET
セルに画像を挿入する

次のいずれかの方法を使用して、画像をシートに挿入できます。それぞれの方法の詳細については、以下のリンクをクリックしてください。

方法1:XLCell.Value プロパティの値へ直接画像を設定します。

この方法を使用すると、画像は指定されたセルの左上端を基点とし、元のサイズで描画されます。画像の左上隅は指定されたセルの左上隅と重なります。

  1. 既存ワークブックまたは新しいワークブックをロードします。

    Visual Basic コードの書き方

    Visual Basic
    コードのコピー
    Dim wb As New C1XLBook
    wb.Load("C:\Project\WorkBook1.xls")
    

    C# コードの書き方

    C#
    コードのコピー
    C1XLBook wb = new C1XLBook();
    wb.Load(@"C:\Project\WorkBook1.xls");
    
  2. 画像を指定し、Value プロパティの値へ設定します。

    Visual Basic コードの書き方

    Visual Basic
    コードのコピー
    Dim img As Image = Image.FromFile("C:\Project\MyImage.bmp")
    Dim sheet As XLSheet = wb.Sheets("Forecasting Report")
    sheet(0, 0).Value = img
    

    C# コードの書き方

    C#
    コードのコピー
    Image img = Image.FromFile(@"C:\Project\MyImage.bmp");
    XLSheet sheet = wb.Sheets("Forecasting Report");
    sheet[0,0].Value = img;
    
  3. ワークブックを保存し、開きます。

    Visual Basic コードの書き方

    Visual Basic
    コードのコピー
    wb.Save("C:\Project\WorkBook1.xls ")
    System.Diagnostics.Process.Start("C:\Project\WorkBook1.xls")
    

    C# コードの書き方

    C#
    コードのコピー
    wb.Save(@"C:\Project\WorkBook1.xls");
    System.Diagnostics.Process.Start(@"C:\Project\WorkBook1.xls");
    

このサンプルでは、画像は第1番目のセルに元のサイズで表示されます。


方法 2:XLPictureShape オブジェクトを作成し、プロパティを設定した後、XLCell.Value プロパティの値へ新しいオブジェクトを設定します。

このサンプルでは、画像は第1番目のセルに元のサイズで表示されます既存ワークブックまたは新しいワークブックをロードします。
  1. 既存ワークブックまたは新しいワークブックをロードします。

    Visual Basic コードの書き方

    Visual Basic
    コードのコピー
    Dim wb As New C1XLBook
    wb.Load("C:\Project\WorkBook1.xls")
    

    C# コードの書き方

    C#
    コードのコピー
    C1XLBook wb = new C1XLBook();
    wb.Load(@"C:\Project\WorkBook1.xls");
    
  2.  XLPictureShape オブジェクトを作成し、プロパティを設定した後、Value プロパティの値に新しいオブジェクトを設定します。

    Visual Basic コードの書き方

    Visual Basic
    コードのコピー
    Dim img As Image = Image.FromFile("C:\Project\MyImage.bmp")
    Dim pic As New XLPictureShape(img, 1500, 1500)
    pic.Rotation = 30.0F
    pic.LineColor = Color.DarkRed
    pic.LineWidth = 100
    ' 指定したシートの第1番目のセルに pic(新XLPictureShapeオブジェクト)を設定します。
    Dim sheet As XLSheet = wb.Sheets("Forecasting Report")
    sheet(0, 0).Value = pic
    

    C# コードの書き方

    C#
    コードのコピー
    Image img = Image.FromFile(imageFileName);
    XLPictureShape pic = new XLPictureShape(img, 1500, 1500);
    pic.Rotation = 30.0f;
    pic.LineColor = Color.DarkRed;
    pic.LineWidth = 100;
    // 指定したシートの第1番目のセルに pic(新XLPictureShapeオブジェクト)を設定します。
    XLSheet sheet = wb.Sheets("Forecasting Report");
    sheet[0,0].Value = pic;
    
  3. ワークブックを保存し、開きます。

    Visual Basic コードの書き方

    Visual Basic
    コードのコピー
    wb.Save("C:\Project\WorkBook1.xls ")
    System.Diagnostics.Process.Start("C:\Project\WorkBook1.xls")
    

    C# コードの書き方

    C#
    コードのコピー
    wb.Save(@"C:\Project\WorkBook1.xls");
    System.Diagnostics.Process.Start(@"C:\Project\WorkBook1.xls");
    

上記コードを実行すると、第1番目のセルの画像は、濃赤色の境界線、30°の回転角付きの画像で上書きされます。ただし座標を設定したため、画像は第1番目のセル上には表示されません。

方法 3:XLPictureShape オブジェクトを作成し、プロパティを設定した後、新しいオブジェクトをシートのShapeCollectionに追加します。

この方法では、XLPictureShape のコンストラクタを使用し、シート内の画像の位置・サイズなを調整します。画像は、シートの ShapeCollection に追加されます。

  1. 既存ワークブックまたは新規ワークブックをロードします。

    Visual Basic コードの書き方

    Visual Basic
    コードのコピー
    Dim wb As New C1XLBook
    wb.Load("C:\Project\WorkBook1.xls")
    

    C# コードの書き方

    C#
    コードのコピー
    C1XLBook wb = new C1XLBook();
    wb.Load(@"C:\Project\WorkBook1.xls");
    
  2.  XLPictureShape オブジェクトを作成し、プロパティを設定した後、新しいオブジェクトをシートの ShapeCollection に追加します。

    Visual Basic コードの書き方

    Visual Basic
    コードのコピー
    Dim img As Image = Image.FromFile("C:\Project\MyImage.bmp")
    Dim pic As New XLPictureShape(img, 3000, 3500, 2500, 900)
    pic.Rotation = 30.0F
    pic.LineColor = Color.DarkRed
    pic.LineWidth = 100
    ' 指定したシートのShapeCollectionに pic(新XLPictureShapeオブジェクト)を追加します。
    Dim sheet As XLSheet = wb.Sheets("Forecasting Report")
    sheet.Shapes.Add(pic)
    

    C# コードの書き方

    C#
    コードのコピー
    Image img = Image.FromFile(@"C:\Project\MyImage.bmp");
    XLPictureShape pic = new XLPictureShape(img, 3000, 3500, 2500, 900);
    pic.Rotation = 30.0f;
    pic.LineColor = Color.DarkRed;
    pic.LineWidth = 100;
    // 指定したシートのShapeCollectionに pic(新XLPictureShapeオブジェクト)を追加します。
    XLSheet sheet = wb.Sheets("Forecasting Report");
    sheet.Shapes.Add(pic)
    
  3. ワークブックを保存し、開きます。

    Visual Basic コードの書き方

    Visual Basic
    コードのコピー
    wb.Save("C:\Project\WorkBook1.xls ")
    System.Diagnostics.Process.Start("C:\Project\WorkBook1.xls")
    

    C# コードの書き方

    C#
    コードのコピー
    wb.Save(@"C:\Project\WorkBook1.xls");
    System.Diagnostics.Process.Start(@"C:\Project\WorkBook1.xls");
    

上記コードでは、画像は指定された ShapeCollection に追加されたため、第1番目のセルの値を上書きしません。画像の高さ、幅、垂直位置、水平位置も指定可能です。