セルに画像を挿入する

はじめに

単一のセルに画像をぴったり合わせることは、視覚的なレポート、製品カタログ、社員ディレクトリ、ダッシュボード、在庫リストなどとして機能するスプレッドシートを設計する際の一般的な要件です。多くのセルにわたって画像を伸ばしたり、ワークシート上に緩く配置したりする代わりに、所有するセルに揃った清潔なセル境界の画像が必要となる場合があります。 Aspose.Cellsは、このシナリオを2つの補完的な方法でサポートしています。

  • アプローチ1 — セル上にフローティング画像を配置する。 Pictureをワークシートに追加し、そのplacementをMOVE_AND_SIZEに設定し、アンカーセル(upper_left_row、upper_left_column、lower_right_row、lower_right_column)を調整して、画像が正確に1つのセルを覆うようにします。
  • アプローチ2 — 画像をセルに直接埋め込む。 画像のバイトをセルのembedded_imageプロパティに割り当てます。画像はセルの表示領域に合わせて自動的にスケールされ、セルと一緒に移動します。 この記事の残りの部分では、両方のアプローチについて説明し、関連するAPIを紹介し、コードでの使用方法を示します。

アプローチ1: セル上に画像を配置する

フローティング画像は、ワークシートの描画レイヤーに存在するPictureオブジェクトです。単一セルの一部ではありませんが、セル範囲にアンカーされています。画像のアンカーセル(左上と右下の角)は、ワークシート上の視覚的な範囲を決定します。デフォルトでは、新しく追加された画像は複数のセルにまたがります。 フローティング画像を正確に1つのセルに覆わせるには、次の手順が必要です。

  1. Worksheet.pictures.add(row, column, stream)を使用して画像を追加します。これにより、新しい画像が指定されたセルにアンカーされます。
  2. 4つのアンカープロパティを設定して、画像の境界矩形がターゲットセルと一致するようにします。
  3. Picture.placementをPlacementType.MOVE_AND_SIZEに設定し、ユーザーが列幅または行の高さを変更したときに画像が基になるセルと一緒に移動およびサイズ変更されるようにします。

画像を単一のセルにアンカーする

画像のアンカーは、4つのゼロベースのインデックスプロパティによって定義されます。

  • Picture.upper_left_row — 画像の上端の行インデックス。
  • Picture.upper_left_column — 画像の左端の列インデックス。
  • Picture.lower_right_row — 画像の下端の行インデックス。画像の下端を行rの下部に配置するには、これをr + 1に設定します。
  • Picture.lower_right_column — 画像の右端の列インデックス。画像の右端を列cの右側に配置するには、これをc + 1に設定します。

関連記事