Управление изображениями

Aspose.Cells для Python via .NET позволяет разработчикам добавлять изображения в таблицы во время выполнения. Более того, позиционирование этих изображений можно управлять во время выполнения, что более подробно обсуждается в следующих разделах.

В этой статье объясняется, как добавлять изображения и как вставлять изображение, отображающее содержимое определенных ячеек.

Добавление изображений

Добавление изображений в электронную таблицу очень просто. Нужно лишь несколько строк кода: Просто вызовите метод add коллекции pictures (инкапсулированной в объекте Worksheet). Метод add принимает следующие параметры:

  • Индекс верхнего левого ряда, индекс верхнего левого ряда.
  • Индекс верхнего левого столбца, индекс верхнего левого столбца.
  • Имя файла изображения, имя файла изображения с полным путем.
from aspose.cells import Workbook
from os import os, path
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET
# The path to the documents directory.
dataDir = RunExamples.GetDataDir(".")
# Create directory if it is not already present.
IsExists = path.isdir(dataDir)
if notIsExists:
os.makedirs(dataDir)
# Instantiating a Workbook object
workbook = Workbook()
# Adding a new worksheet to the Workbook object
sheetIndex = workbook.worksheets.add()
# Obtaining the reference of the newly added worksheet by passing its sheet index
worksheet = workbook.worksheets[sheetIndex]
# Adding a picture at the location of a cell whose row and column indices
# Are 5 in the worksheet. It is "F6" cell
worksheet.pictures.add(5, 5, dataDir + "logo.jpg")
# Saving the Excel file
workbook.save(dataDir + "output.xls")

Позиционирование изображений

Есть два возможных способа управлять позиционированием изображений с помощью Aspose.Cells для Python via .NET:

  • Пропорциональное позиционирование: определение положения пропорционально высоте и ширине строки.
  • Абсолютное позиционирование: определение точного положения на странице, куда будет вставлено изображение, например, 40 пикселей слева и 20 пикселей под краем ячейки.

Пропорциональное позиционирование

Разработчики могут размещать изображения пропорционально высоте строки и ширине столбца, используя свойства upper_delta_x и upper_delta_y объекта Aspose.Cells.Drawing.Picture. Одну картинку можно получить из коллекции pictures, указав ее индекс. В этом примере изображение размещается в ячейке F6.

from aspose.cells import Workbook
from os import os, path
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET
# The path to the documents directory.
dataDir = RunExamples.GetDataDir(".")
# Create directory if it is not already present.
IsExists = path.isdir(dataDir)
if notIsExists:
os.makedirs(dataDir)
# Instantiating a Workbook object
workbook = Workbook()
# Adding a new worksheet to the Workbook object
sheetIndex = workbook.worksheets.add()
# Obtaining the reference of the newly added worksheet by passing its sheet index
worksheet = workbook.worksheets[sheetIndex]
# Adding a picture at the location of a cell whose row and column indices
# Are 5 in the worksheet. It is "F6" cell
pictureIndex = worksheet.pictures.add(5, 5, dataDir + "logo.jpg")
# Accessing the newly added picture
picture = worksheet.pictures[pictureIndex]
# Positioning the picture proportional to row height and colum width
picture.upper_delta_x = 200
picture.upper_delta_y = 200
# Saving the Excel file
workbook.save(dataDir + "book1.out.xls")

Абсолютное позиционирование

Разработчики могут также абсолютно позиционировать изображения, используя свойства left и top объекта Picture. В этом примере изображение размещается в ячейке F6, 60 пикселей слева и 10 пикселей сверху от ячейки.

from aspose.cells import Workbook
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET
# The path to the documents directory.
dataDir = RunExamples.GetDataDir(".")
# Instantiating a Workbook object
workbook = Workbook()
# Adding a new worksheet to the Workbook object
sheetIndex = workbook.worksheets.add()
# Obtaining the reference of the newly added worksheet by passing its sheet index
worksheet = workbook.worksheets[sheetIndex]
# Adding a picture at the location of a cell whose row and column indices
# Are 5 in the worksheet. It is "F6" cell
pictureIndex = worksheet.pictures.add(5, 5, dataDir + "logo.jpg")
# Accessing the newly added picture
picture = worksheet.pictures[pictureIndex]
# Absolute positioning of the picture in unit of pixels
picture.left = 60
picture.top = 10
# Saving the Excel file
workbook.save(dataDir + "book1.out.xls")

Вставка изображения на основе ссылки на ячейку

Aspose.Cells для Python via .NET позволяет отображать содержимое ячейки листа в виде фигуры изображения. Можно связать изображение с ячейкой, содержащей нужные данные. Поскольку ячейка или диапазон ячеек связаны с графическим объектом, изменения в данных этой ячейки или диапазона автоматически отображаются в графическом объекте.

Добавление изображения на лист, вызвав метод add_picture коллекции ShapeCollection (инкапсулированной в объекте Worksheet). Укажите диапазон ячеек, используя атрибут formula объекта Picture.

from aspose.cells import Workbook
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET
# The path to the documents directory.
dataDir = RunExamples.GetDataDir(".")
# Instantiate a new Workbook
workbook = Workbook()
# Get the first worksheet's cells collection
cells = workbook.worksheets[0].cells
# Add string values to the cells
cells.get("A1").put_value("A1")
cells.get("C10").put_value("C10")
# Add a blank picture to the D1 cell
pic = workbook.worksheets[0].shapes.add_picture(0, 3, 10, 6, None)
# Specify the formula that refers to the source range of cells
pic.formula = "A1:C10"
# Update the shapes selected value in the worksheet
workbook.worksheets[0].shapes.update_selected_value()
# Save the Excel file.
workbook.save(dataDir + "output.out.xls")

Продвинутые темы