Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
Bir resmi tam olarak tek bir hücreye sığdırmak, görsel raporlar, ürün katalogları, çalışan rehberleri, panolar veya envanter listeleri olarak işlev gören elektronik tablolar tasarlarken yaygın bir gereksinimdir. Görseli birçok hücreye yaymak veya çalışma sayfasına gevşek bir şekilde yerleştirmek yerine, sahip olduğu hücreyle hizalı kalan temiz, hücreye bağlı bir görsel isteyebilirsiniz. Aspose.Cells bu senaryoyu birbirini tamamlayan iki şekilde destekler:
Picture ekleyin, placement özelliğini MOVE_AND_SIZE olarak ayarlayın ve resmin tam olarak bir hücreyi kaplaması için bağlantı hücrelerini (upper_left_row, upper_left_column, lower_right_row, lower_right_column) ayarlayın.embedded_image özelliğine atayın. Görsel otomatik olarak hücrenin görüntü alanına sığacak şekilde ölçeklenir ve hücreyle birlikte taşınır.
Bu makalenin geri kalanı her iki yaklaşımı da ele alır, ilgili API’leri açıklar ve kodda nasıl kullanılacağını gösterir.Kayan resim, çalışma sayfasının çizim katmanında bulunan bir Picture nesnesidir. Herhangi bir tek hücrenin parçası olmasa da bir hücre aralığına bağlanır. Resmin bağlantı 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 kapsar.
Kayan bir resmin tam olarak bir hücreyi kaplamasını sağlamak için şunları yapmanız gerekir:
Worksheet.pictures.add(row, column, stream) kullanarak resmi ekleyin; bu, yeni resmi verilen hücreye bağlar.Picture.placement özelliğini PlacementType.MOVE_AND_SIZE olarak ayarlayın.Resmin bağlantısı dört sıfır tabanlı dizin özelliğiyle tanımlanır:
Picture.upper_left_row — resmin üst kenarının satır dizini.Picture.upper_left_column — resmin sol kenarının sütun dizini.Picture.lower_right_row — resmin alt kenarının satır dizini. Resmin alt kenarının r satırının altında olmasını sağlamak için bunu r + 1 olarak ayarlayın.Picture.lower_right_column — resmin sağ kenarının sütun dizini. Resmin sağ kenarının c sütununun sağında olmasını sağlamak için bunu c + 1 olarak ayarlayın.Aspose.Cells’deki satır ve sütun dizinleri sıfır tabanlıdır. C6 hücresinin satır dizini 5 ve sütun dizini 2’dir. Sağ alt bağlantı noktasındaki bir-ofset hataları, resimlerin bitişik bir hücreye taşmış gibi görünmesinin en yaygın kaynağıdır.
Picture.placement, kullanıcı alttaki satırı veya sütunu yeniden boyutlandırdığında resmin nasıl davranacağını kontrol eden PlacementType türünde bir enum’dur. Tek hücreli bir resim için önerilen değer PlacementType.MOVE_AND_SIZE‘dir; bu, resmin alttaki hücreyle birlikte taşınmasını ve yeniden boyutlandırılmasını sağlayarak tam sığmayı korur.
Workbook oluşturun (veya mevcut birini açın).workbook.worksheets[0] üzerinden hedef Worksheet‘e erişin.BytesIO nesnesine) with bloğu kullanarak açın; böylece akış düzgün şekilde kapatılır.worksheet.pictures.add(5, 2, stream) çağrısını yapın. Döndürülen Picture referansını yakalayın.upper_left_row = 5, upper_left_column = 2, lower_right_row = 6, lower_right_column = 3.picture.placement = PlacementType.MOVE_AND_SIZE olarak ayarlayın..xlsx dosyası olarak kaydedin.
Aşağıdaki kod tam yaklaşımı gösterir.import aspose.cells as ac
workbook = ac.Workbook()
worksheet = workbook.worksheets[0]
with open("logo.png", "rb") as fs:
pic_index = worksheet.pictures.add(5, 2, fs)
picture = worksheet.pictures[pic_index]
picture.upper_left_row = 5
picture.upper_left_column = 2
picture.lower_right_row = 6
picture.lower_right_column = 3
picture.placement = ac.PlacementType.MOVE_AND_SIZE
workbook.save("output.xlsx", ac.SaveFormat.XLSX)
Aspose.Cells ayrıca hücreye bağlı görseller için daha basit bir mekanizma sunar: Cell.embedded_image özelliği. Görsel baytlarını bu özelliğe atamak, görseli sanki satır içi içerikmiş gibi hücrenin kendisine ekler.
Cell.embedded_image özelliğini en özlü seçenek haline getirir.Workbook oluşturun (veya mevcut birini açın).workbook.worksheets[0] üzerinden hedef Worksheet‘e erişin.bytes nesnesine okuyun (örneğin, dosyayı ikili modda açıp .read() çağırarak).worksheet.cells["C6"] veya worksheet.cells[5, 2] aracılığıyla.embedded_image özelliğine atayın..xlsx dosyası olarak kaydedin.
Aşağıdaki kod tam yaklaşımı gösterir.import aspose.cells as ac
workbook = ac.Workbook()
worksheet = workbook.worksheets[0]
# Get the target cell C6
cell = worksheet.cells["C6"]
# Read the image file into a byte array
with open("logo.png", "rb") as f:
imageData = f.read()
# Embed the image directly into the cell
cell.embedded_image = imageData
# Optionally adjust row height and column width so the embedded image is more visible
worksheet.cells.set_column_width(2, 30) # Column C (index 2)
worksheet.cells.set_row_height(5, 100) # Row 6 (index 5)
# Save the resulting workbook as an .xlsx file
workbook.save("output.xlsx", ac.SaveFormat.XLSX)
Her iki yaklaşım da tek bir hücrenin içine sığan bir resim üretir, ancak resmin nasıl depolandığı ve nasıl davrandığı açısından farklılık gösterir:
pictures koleksiyonlarıyla çalışan kodla eski sürüm uyumluluğu gerektirdiğinde.Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.