MESCIUS SPREAD for Windows Forms 17.0J
セルへの画像の挿入

SPREAD for Windows Forms では、セルに画像を値として挿入することができます。 これにより、セルを ImageCellType クラス オブジェクトに変換せずに、セルに画像を追加できます。

ImageCellType を使用して画像を追加する方法については、「イメージ型セル」トピックを参照してください。

次のいずれかの方法を使用して、セルに画像を表示できます。 これらの方法を使用すると、画像オブジェクトをセル値に設定したり、ローカル画像ファイルのパスを設定したり、base64 でエンコードされた画像文字列をセルに設定したりすることができます。

メモ: 文字列によって返されるデータ型は、ローカルの画像ファイル パスのみをサポートします。

画像とセル値の表示

セル値とともに画像を表示したい場合は、CellImageAttribute クラスのメンバーを使用します。そのコンストラクターメソッドは次のパラメータを受け取ります。

パラメータ 説明
member

セルのインライン画像データで指定されたメンバを示す文字列値。

isField

メンバがフィールドであるかどうかを示すブール値。 デフォルト値は false です。

次の図は、Spread で設定された画像属性に従ってセル値とともに表示された画像を示しています。

C#
コードのコピー
private void CellImageAndValue_Load(object sender, EventArgs e)
{
    IWorksheet TestActiveSheet = fpSpread1.AsWorkbook().ActiveSheet;
    fpSpread1.AsWorkbook().WorkbookSet.CalculationEngine.CalcFeatures = CalcFeatures.All;
    fpSpread1.LegacyBehaviors = FarPoint.Win.Spread.LegacyBehaviors.None;

    // 画像とセル値を表示します
    RichValue<Country> ct = new RichValue<Country>(new Country()
    {
        Name = "Apple",
    });
    ct.ShowDetailsIcon = true;
    TestActiveSheet.Cells["A1"].Value = ct;

    TestActiveSheet.Rows[0].RowHeight = 100;
    TestActiveSheet.Columns[0].ColumnWidth = 150;
    TestActiveSheet.Columns[2].ColumnWidth = 100;
}

[System.Reflection.DefaultMember("Name")]
[CellImage("Image")]
public class Country
{
    public string Name { get; set; }
    [CellValueDataType(PrimitiveValueType.Image)]
    public string Image
    {
        get
        {
            return @"D:\apple.jpg";
        }
    }
}
Visual Basic
コードのコピー
Private Sub CellImageAndValue_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Dim TestActiveSheet As IWorksheet = FpSpread1.AsWorkbook().ActiveSheet

    FpSpread1.AsWorkbook().WorkbookSet.CalculationEngine.CalcFeatures = CalcFeatures.All
    FpSpread1.LegacyBehaviors = FarPoint.Win.Spread.LegacyBehaviors.None

    '画像とセル値を表示します
    Dim ct As RichValue(Of Country) = New RichValue(Of Country)(New Country() With {
        .Name = "Apple"
    })
    ct.ShowDetailsIcon = True

    TestActiveSheet.Cells("A1").Value = ct

    TestActiveSheet.Rows(0).RowHeight = 100
    TestActiveSheet.Columns(0).ColumnWidth = 150
    TestActiveSheet.Columns(2).ColumnWidth = 100
End Sub

<System.Reflection.DefaultMember("Name")>
<CellImage("Image")>
Public Class Country
    Public Property Name As String

    <CellValueDataType(PrimitiveValueType.Image)>
    Public ReadOnly Property Image As String
        Get
            Return "D:\apple.jpg"
        End Get
    End Property
End Class

メモ:このクラスは CellValueDataTypeAttribute クラスよりも高い優先順位を持っています。

SPREAD for Windows Forms では、セルに画像を配置できる GC.IMAGE 関数も提供します。 この関数の詳細については、「イメージスパークライン」トピックを参照してください。 また、ソースの場所からセルに画像を挿入する IMAGE関数を使用することもできます。

セルへの画像の挿入/貼り付け

SPREAD for Windows Forms では、セルに画像を挿入または貼り付けるには、IRange インターフェースの InsertPictureInCell メソッドまたは PastePictureInCell メソッドを使用します。新しいスタイルシステム(LegacyBehaviorsプロパティがStyleを含まない場合)標準のセルでのみ機能します。セルに画像を挿入するために、リボンコントロールを使用するか、コンテキストメニューを使用して画像を貼り付けます。

セルに画像を挿入

コードの使用

次のサンプル コードは、IRange インターフェースの InsertPictureInCell メソッドを使用して画像を挿入します。

C#
コードのコピー
fpSpread1.AsWorkbook().ActiveSheet.Cells[7, 2].InsertPictureInCell(@”picture.jpg”);

Visual Basic
コードのコピー
FpSpread1.AsWorkbook().ActiveSheet.Cells(7, 2).InsertPictureInCell("picture.jpg")

実行時に画像を挿入

リボンコントロールを使用して画像を挿入するには、次の手順に従います。

  1. 次のサンプルコードを実行して、リボンコントロールを含むSpread コントロールにを読み込みます。
    C#
    コードのコピー
    ribbonBar1.Attach(fpSpread1);
    

    Visual Basic
    コードのコピー
    ribbonBar1.Attach(FpSpread1)
    
  2. メニューから「挿入」オプションを選択します。
  3. 」グループで「画像」をクリックして、「セルに配置」を選択します。
    メモ:セルの上に画像をフローティングするには、「セルの上に配置」オプションを使用します。
  4. 画像を選択して、「OK」をクリックします。

次の図は、リボンコントロールを使用してセルに画像を挿入する方法を示しています。

さらに、SPREAD for Windows Formsはセル内の画像に対して、さまざまなサイズモードをサポートしています。画像のサイズモードを設定するには、GrapeCity.CalcEngine名前空間のSizingMode列挙を使用します。この列挙は、Fit、Fill、Original、Customなどの異なる画像の寸法を表します。

以下の表では、SizingModeのオプションについて説明します。

サイズモード

説明

サンプル画像

Fit

元の縦横比を維持しながら、セル内に収まるように画像をリサイズします。

Fill

縦横比を無視して、セル全体を画像で埋めます。

Original

セルの境界を超える可能性がある元の画像サイズを維持します。

Custom

カスタムの縦横サイズに合わせて画像を表示します。

以下のサンプルコードを使用して、InsertPictureInCell メソッドでセルに画像を挿入し、SizingMode 列挙を使用してサイズオプションをカスタムに設定します。

C#
コードのコピー
IWorksheet sheet = fpSpread1.AsWorkbook().ActiveSheet;
// InsertPictureInCell メソッドを使用して画像を挿入します。
var image = sheet.Cells["A2"].InsertPictureInCell(@"cherry.jpg");
// 画像のサイズ、幅、高さのプロパティを変更します。
image.Sizing = GrapeCity.CalcEngine.SizingMode.Custom; // Custom は SizingMode 列挙型のサイズオプションです。
image.Width = 60;
image.Height = 40;
sheet.Rows["1:2"].RowHeight = 100;
VB
コードのコピー
Dim sheet As IWorksheet = fpSpread1.AsWorkbook().ActiveSheet
// InsertPictureInCell メソッドを使用して画像を挿入します。
Dim image = sheet.Cells("A2").InsertPictureInCell("cherry.jpg")
// 画像のサイズ、幅、高さのプロパティを変更します。
image.Sizing = GrapeCity.CalcEngine.SizingMode.Custom // Custom は SizingMode 列挙型のサイズオプションです。
image.Width = 60
image.Height = 40
sheet.Rows("1:2").RowHeight = 100
メモ:どのリサイズモードを選択しても、画像は常に「Fit」モードでXLSX形式でエクスポートされます。

画像をセルに貼り付ける

IRangeインターフェースのPastePictureInCellメソッドを使用すると、クリップボードからセルへの画像の貼り付けが可能です。

  • 画像をクリップボードにコピーするには、ペイントアプリで画像を開き、コピー操作を行う必要があります。その後、PastePictureInCell メソッドを使用してセルに貼り付けることができます。
  • セルへの画像の貼り付けは、新しいスタイルシステム(LegacyBehaviors.None)でのみ機能します。

コードの使用

次のサンプルコードは、IRange インターフェースの PastePictureInCell メソッドを使用して画像を貼り付けます。

  1. クリップボードに画像をコピーします。
  2. 次のサンプル コードを実行して、RichClipboard プロパティが True に設定された、リボンコントロールを含んだSpread コントロールを読み込みます。
    C#
    コードのコピー
    fpSpread1.Features.RichClipboard = true;
    fpSpread1.AsWorkbook().ActiveSheet.ActiveCell.PastePictureInCell();
    

    Visual Basic
    コードのコピー
    FpSpread1.Features.RichClipboard = True
    FpSpread1.AsWorkbook().ActiveSheet.ActiveCell.PastePictureInCell()
    

実行時に画像をセルに貼り付ける

リボンコントロールを使用して画像を貼り付けるには、次の手順に従います。

  1. クリップボードに画像をコピーします。
  2. 次のサンプル コードはを実行して、RichClipboard プロパティが True に設定された、リボンコントロールを含んだSpread コントロールを読み込みます。
    C#
    コードのコピー
    fpSpread1.Features.RichClipboard = true;
    ribbonBar1.Attach(fpSpread1);
    

    Visual Basic
    コードのコピー
    FpSpread1.Features.RichClipboard = True
    ribbonBar1.Attach(FpSpread1)
    
  3. コピーした画像を貼り付けるコピー先のセルを右クリックします。
  4. コンテキストメニューで、「セルに画像を貼り付け(C)」 オプションを選択します。

     

 

 


© MESCIUS inc. All rights reserved.