Hücreye Görsel Ekleme

Giriş

Bir resmi tek bir hücreye tam olarak sığdırmak, görsel raporlar, ürün katalogları, çalışan rehberleri, panolar veya envanter listeleri olarak işlev gören elektronik tablolar tasarlarken sık karşılaşılan bir gereksinimdir. Görüntüyü birçok hücreye yaymak veya çalışma sayfasına gevşek bir şekilde yerleştirmek yerine, kendisine sahip olan hücreyle hizalı kalan temiz, hücreye bağlı bir görsel isteyebilirsiniz. Aspose.Cells bu senaryoyu iki tamamlayıcı şekilde destekler:

  • Yaklaşım 1 — Hücrenin üzerine kayan bir resim yerleştirin. Çalışma sayfasına bir Picture ekleyin, Placement özelliğini MoveAndSize olarak ayarlayın ve resmin tam olarak bir hücreyi kaplaması için çapa hücrelerini (UpperLeftRow, UpperLeftColumn, LowerRightRow, LowerRightColumn) ayarlayın.
  • Yaklaşım 2 — Görüntüyü doğrudan bir hücreye gömün. Görüntü baytlarını hücrenin EmbeddedImage özelliğine atayın. Görsel, hücrenin görüntüleme alanına sığacak şekilde otomatik olarak ölçeklenir ve hücreyle birlikte taşınır. Bu makalenin geri kalanı her iki yaklaşımı da adım adım açıklar, ilgili API’leri tanımlar ve kodda nasıl kullanılacağını gösterir.

Yaklaşım 1: Hücrenin Üzerine Bir Resim Yerleştirme

Kayan resim, çalışma sayfası çizim katmanında bulunan bir Picture nesnesidir. Herhangi bir tek hücrenin parçası olmasa da, bir hücre aralığına çapalanmıştır. Resmin çapa hücreleri — sol üst ve sağ alt köşeleri — çalışma sayfasındaki görsel kapsamını belirler. Varsayılan olarak, yeni eklenen bir resim birkaç hücreyi kaplar. Kayan bir resmin tam olarak bir hücreyi kaplamasını sağlamak için şunları yapmanız gerekir:

  1. Resmi worksheet.getPictures().add(int row, int column, InputStream stream) kullanarak ekleyin; bu yöntem yeni resmi verilen hücreye çapalar.
  2. Resmin sınırlayıcı dikdörtgeni hedef hücreyle çakışacak şekilde dört çapa özelliğini ayarlayın.
  3. Kullanıcı sütun genişliğini veya satır yüksekliğini değiştirdiğinde resmin alttaki hücreyle birlikte hareket etmesi ve yeniden boyutlandırılması için picture.setPlacement(PlacementType.MOVE_AND_SIZE) ayarlayın.

Resmi Tek Bir Hücreye Çapalama

Resmin çapası dört sıfır tabanlı dizin özelliği tarafından tanımlanır:

  • picture.setUpperLeftRow(int) — resmin üst kenarının satır dizini.
  • picture.setUpperLeftColumn(int) — resmin sol kenarının sütun dizini.
  • picture.setLowerRightRow(int) — resmin alt kenarının satır dizini. Resmin alt kenarının r satırının altına yerleşmesini sağlamak için bunu r + 1 olarak ayarlayın.
  • picture.setLowerRightColumn(int) — resmin sağ kenarının sütun dizini. Resmin sağ kenarının c sütununun sağına yerleşmesini sağlamak için bunu c + 1 olarak ayarlayın.