DioDocs for Excel
DioDocs for Excel
図形と画像
機能 > 図形と画像

DioDocs for Excel では、ワークシートのセルに図形や画像などの描画オブジェクトを追加できます。IShape インターフェースと IShapes インターフェースのプロパティとメソッドを使用して、図形や画像を操作できます。

また、DioDocs for Excel では、コネクタ、図形、画像など、様々な種類の図を作成することができます。

コネクタ

コネクタは、2 つの一般的な図形を接続する必要がある場合に使用されます。DioDocs for Excel では、AddConnector メソッドを使用して、ワークシートの特定の座標や特定の範囲にコネクタを追加できます。また、IConnectorFormat インタフェースの BeginConnect メソッド、EndConnect メソッド、BeginDisconnect メソッド、EndDisconnect メソッドを使用して、コネクタの両端を他の図形に接続または接続解除することができます。

コネクタを使用して一般的な図形を接続する方法については、次のサンプルコードを参照してください。ポイント単位でコネクタの位置を指定するか、セル範囲を直接指定して、コネクタを追加できます。

C#
コードのコピー
// コネクタの図形を構成します
// ポイント単位で位置を指定して図形を追加します
IShape shapeBegin = worksheet.Shapes.AddShape(AutoShapeType.Rectangle, 1, 1, 100, 100);
IShape shapeEnd = worksheet.Shapes.AddShape(AutoShapeType.Rectangle, 200, 200, 100, 100);

// ポイント単位で位置を指定して、shapeBegin と shapeEnd のコネクタを追加します
IShape connectorShape = worksheet.Shapes.AddConnector(ConnectorType.Straight, 1, 1, 101, 101);
connectorShape.Width = 10;

// コネクタの両端を shapeBegin と shapeEnd に接続します
connectorShape.ConnectorFormat.BeginConnect(shapeBegin, 3);
connectorShape.ConnectorFormat.EndConnect(shapeEnd, 0);

// セル範囲を指定して図形を追加します
IShape rectangle3 = worksheet.Shapes.AddShape(AutoShapeType.Rectangle, worksheet.Range["B12"]);
IShape rectangle4 = worksheet.Shapes.AddShape(AutoShapeType.Rectangle, worksheet.Range["D12"]);

// セル範囲を指定して、rectangle3 とrectangle4 のコネクタを追加します
IShape rangeConnectorShape = worksheet.Shapes.AddConnector(ConnectorType.Curve, worksheet.Range["B12:D12"]);

メモ: コネクタを使用する際には制限事項があります。2 つの一般的な図形を接続するコネクタを追加してエクスポートすることはできますが、そのコネクタは、図形をスプレッドシートにドラッグした後でないと表示されません。

図形

図形は描画オブジェクトの 1 つであり、Shapes コレクションのメンバです。Shapes コレクションは、指定されたワークシート内の図形のコレクションを表します。チャート、コメント、画像、スライサー、一般的な図形、グループ化された図形などのすべての描画オブジェクトは、Shape として定義されます。

IShapes インターフェースが提供する様々なメソッドを使用して、チャート、画像、コネクタ、オートシェイプなどの図形に名前を割り当てることもできます。図形に名前をつけると、図形のリストをすべて辿ることなく、直接その図形にアクセスし、そのプロパティを変更することができます。

DioDocs for Excel にて、ワークシートに図形を追加するには、IShapes インターフェースの AddShape メソッドを使用します。このメソッドにはオーバーロードがあり、指定した位置や範囲に様々な図形を追加することができます。

特定の位置と特定の範囲に図形を追加する方法については、次のサンプルコードを参照してください。

C#
コードのコピー
Workbook workbook = new Workbook();
// デフォルトのワークシートを取得します
IWorksheet worksheet = workbook.Worksheets[0];

// 特定の位置にカスタム名で図形を追加します
IShape shape = worksheet.Shapes.AddShape("Balloon", AutoShapeType.Balloon, 50, 50, 100, 200);

// 特定の範囲に図形を追加します
// IShape rangeShape = worksheet.Shapes.AddShape(AutoShapeType.Rectangle, worksheet.Range["F5:I10"]);

// Excel ファイルに保存します
workbook.Save("BalloonShape.xlsx");

チャートに名前を割り当てる方法については、次のサンプルコードを参照してください。

C#
コードのコピー
//新しいワークブックを作成します
Workbook workbook = new Workbook();

IWorksheet worksheet = workbook.Worksheets[0];

//チャート名を設定します
IShape shape = worksheet.Shapes.AddChart("Area chart with custom name", ChartType.Area, 250, 20, 360, 230);
worksheet.Range["A1:C13"].Value = new object[,] {
{ null, "Blue Series", "Orange Series" },
{ "Jan", 0, 59.1883603948205 },
{ "Feb", 44.6420211591501, 52.2280901938606 },
{ "Mar", 45.2174930051225, 49.8093056416248 },
{ "Apr", 62, 37.3065749226828 },
{ "May", 53, 34.4312192530766 },
{ "Jun", 31.8933622049831, 69.7834561753736 },
{ "Jul", 41.7930895085093, 63.9418103906982 },
{ "Aug", 73, 57.4049534494926 },
{ "Sep", 49.8773891668518, 33 },
{ "Oct", 50, 74 },
{ "Nov", 54.7658428630216, 22.9587876597096 },
{ "Dec", 32, 54 },
};

//名前でチャートを取得します
IShape areaChart = worksheet.Shapes["Area chart with custom name"];
areaChart.Chart.SeriesCollection.Add(worksheet.Range["A1:C13"], RowCol.Columns);
areaChart.Chart.ChartTitle.Text = "Area Chart";

//Excel ファイルに保存します
workbook.Save("ChartName.xlsx");

画像

IShapes インターフェースの AddPicture メソッドを使用すると、スプレッドシートのセルに画像を挿入できます。このメソッドでは、特定の位置や範囲に画像を追加することができます。また、IPictureFormat インターフェースを使用すると、画像のカスタマイズや書式設定を行うことができます。

DioDocs for Excel で画像を操作する方法については、次のサンプルコードを参照してください。

C#
コードのコピー
// ストリーム経由で画像を追加します
string path = @"Images\flower.jpg";
FileStream stream = System.IO.File.Open(path, FileMode.Open);
IShape picture = worksheet.Shapes.AddPicture(stream, ImageType.JPG, 480, 10, 100, 100);

// 特定の位置にファイルから画像を追加します
// IShape picture = worksheet.Shapes.AddPicture(@"Images\flower.jpg", 480, 10, 100, 100);

// 特定の範囲に画像を追加します
// IShape pictureInRange = worksheet.Shapes.AddPicture("flower.jpg", worksheet.Range["D3:F5"]);

// 追加された画像を塗りつぶします
picture.Fill.Solid();
picture.Fill.Color.RGB = Color.AliceBlue;
// 追加された画像をカスタマイズします
picture.PictureFormat.Crop.PictureWidth = 80;

画像に名前を割り当てる方法については、次のサンプルコードを参照してください。

C#
コードのコピー
Workbook workbook = new Workbook();
// デフォルトのワークシートを取得します
IWorksheet worksheet = workbook.Worksheets[0];

// カスタム名で画像を追加します
IShape shape = worksheet.Shapes.AddPicture("Custom Name to Image", "image.png", 10, 10, 250, 150);

// Excelファイルに保存します
workbook.Save("PictureName.xlsx");

コードの実装結果については、「範囲への図形の追加」および「範囲への画像の追加」のデモを確認してください。

DioDocs for Excel に図形や画像を操作するには、次の作業を行います。

図形形式と図形テキストのカスタマイズ

ハイパーリンクの図形への追加

図形のグループ化またはグループ解除

図形の調整

背景画像の設定

画像のサイズ・位置の取得

画像の透明度

重なった図形の位置の制御

リンクされた図

メモ:
関連トピック