Shape — Aspose.Cells FOSS for Python API Reference

aspose-cells-foss поддерживает добавление геометрических фигур и текстовых полей в листы через ShapeCollection (ws.shapes). Каждая фигура представлена Shape объектом с настраиваемыми свойствами заливки, линии и текста.

ImageRenderOptions: aspose.cells_foss

from aspose.cells_foss import (
    MsoDrawingType, FillType, MsoLineDashStyle,
    TextAlignmentType, TextAnchorType,
    MsoFillFormat, MsoLineFormat, ShapeFont, Shape,
)

MsoDrawingType

MsoDrawingType является IntEnum определяющим тип геометрической фигуры.

ImageRenderOptionsImageRenderOptionsImageRenderOptionsImageRenderOptions
UNKNOWN0TEXT_BOX21
RECTANGLE1CALLOUT22
ROUNDED_RECTANGLE2PENTAGON23
OVAL3CLOUD24
DIAMOND4HEART25
TRIANGLE5LIGHTNING_BOLT26
RIGHT_TRIANGLE6SMILEY_FACE27
PARALLELOGRAM7LEFT_RIGHT_ARROW28
TRAPEZOID8UP_DOWN_ARROW29
HEXAGON9CUBE30
OCTAGON10BEVEL31
CROSS11STAR_412
RIGHT_ARROW17STAR_513
LEFT_ARROW18STAR_614
UP_ARROW19STAR_715
DOWN_ARROW20STAR_816

FillType

FillType является IntEnum определяющим тип заливки, применяемой к фигуре.

ImageRenderOptionsImageRenderOptions
NONE0
SOLID1
GRADIENT2
PATTERN3
AUTOMATIC4

MsoLineDashStyle

MsoLineDashStyle является IntEnum для шаблона пунктирной линии границы/контура.

ImageRenderOptionsImageRenderOptions
SOLID0
DASH1
DOT2
DASH_DOT3
DASH_DOT_DOT4
LONG_DASH5
LONG_DASH_DOT6

TextAlignmentType

TextAlignmentType является IntEnum для горизонтального выравнивания текста внутри фигуры.

ImageRenderOptionsImageRenderOptions
LEFT0
CENTER1
RIGHT2
JUSTIFY3
DISTRIBUTED4

TextAnchorType

TextAnchorType является IntEnum для вертикального привязки текста внутри фигуры.

ImageRenderOptionsImageRenderOptions
TOP0
MIDDLE1
BOTTOM2
JUSTIFIED3

MsoFillFormat

Управляет внешним видом заливки фигуры. Доступно через shape.fill.

ImageRenderOptions

ImageRenderOptionsImageRenderOptionsImageRenderOptions
fill_typeFillTypeТекущий тип заливки.
fore_colorstrЦвет переднего (основного) заливки в формате шестнадцатеричного RRGGBB.
transparencyfloatНепрозрачность заливки как значение от 0.0 (полностью непрозрачный) до 1.0 (полностью прозрачный).

ImageRenderOptions

copy

fill.copy() -> MsoFillFormat

Возвращает глубокую копию этих настроек заливки.


MsoLineFormat

Управляет внешним видом контура/границы фигуры. Доступно через shape.line.

ImageRenderOptions

ImageRenderOptionsImageRenderOptionsImageRenderOptions
is_visibleboolTrue для рисования контура фигуры.
colorstrЦвет контура в виде шестнадцатеричного RRGGBB.
weightintТолщина контура (в пунктах).
dash_styleMsoLineDashStyleШтриховой шаблон контура.
transparencyfloatНепрозрачность контура от 0.0 (непрозрачный) до 1.0 (прозрачный).

ImageRenderOptions

copy

line.copy() -> MsoLineFormat

Возвращает глубокую копию этих настроек линии.


ShapeFont

Управляет шрифтом текста внутри фигуры. Доступно через shape.font.

ImageRenderOptions

ImageRenderOptionsImageRenderOptionsImageRenderOptions
namestrНазвание семейства шрифта (например,., "Calibri").
sizefloatРазмер шрифта в пунктах.
boldboolTrue для полужирного начертания.
italicboolTrue для курсивного стиля.
underlineboolTrue для одинарного подчеркивания.
colorstrЦвет шрифта в виде шестнадцатеричного RRGGBB.

ImageRenderOptions

copy

font.copy() -> ShapeFont

Возвращает глубокую копию этих настроек шрифта.


ImageRenderOptions

Shape объекты не создаются напрямую. Используйте ws.shapes.add(...) или ws.shapes.add_text_box(...).

ImageRenderOptions

ImageRenderOptionsImageRenderOptionsImageRenderOptionsImageRenderOptions
namestrЧтение/ЗаписьИмя фигуры (должно быть уникальным в пределах листа).
drawing_typeMsoDrawingTypeImageRenderOptionsГеометрический тип этой фигуры.
upper_left_rowintЧтение/Запись0-based row index of the top-left anchor cell.
upper_left_columnintЧтение/Запись0-based column index of the top-left anchor cell.
lower_right_rowintЧтение/Запись0-based row index of the bottom-right anchor cell.
lower_right_columnintЧтение/Запись0-based column index of the bottom-right anchor cell.
upper_left_row_offsetintЧтение/ЗаписьПиксельное смещение от верхнего края верхней левой ячейки.
upper_left_column_offsetintЧтение/ЗаписьПиксельное смещение от левого края верхней левой ячейки.
lower_right_row_offsetintЧтение/ЗаписьПиксельное смещение от верхнего края правой нижней ячейки.
lower_right_column_offsetintЧтение/ЗаписьПиксельное смещение от левого края правой нижней ячейки.
fillMsoFillFormatImageRenderOptionsНастройки заливки (фона).
lineMsoLineFormatImageRenderOptionsНастройки контура/границы.
textstrЧтение/ЗаписьТекстовое содержимое, отображаемое внутри фигуры.
fontShapeFontImageRenderOptionsНастройки шрифта для текста фигуры.
text_horizontal_alignmentTextAlignmentTypeЧтение/ЗаписьГоризонтальное выравнивание текста внутри фигуры.
text_vertical_alignmentTextAnchorTypeЧтение/ЗаписьВертикальное привязывание текста внутри фигуры.
is_text_wrappedboolЧтение/ЗаписьTrue для переноса текста по границе фигуры.
is_lockedboolЧтение/ЗаписьTrue для блокировки фигуры, когда защита листа активна.
is_hiddenboolЧтение/ЗаписьTrue чтобы скрыть объект.
hyperlink`strNone`Чтение/Запись

ImageRenderOptions

copy

shape.copy() -> Shape

Возвращает глубокую копию этой фигуры со всеми сохранёнными форматированиями.


ShapeCollection

ShapeCollection доступно как ws.shapes. Содержит все объекты на листе.

ImageRenderOptions

add

ws.shapes.add(
    drawing_type: MsoDrawingType,
    upper_left_row: int,
    upper_left_column: int,
    lower_right_row: int,
    lower_right_column: int
) -> Shape

Добавляет фигуру указанного типа. Все аргументы позиции — индексы строк/столбцов, начинающиеся с 0.

add_text_box

ws.shapes.add_text_box(
    upper_left_row: int,
    upper_left_column: int,
    lower_right_row: int,
    lower_right_column: int
) -> Shape

Сокращение для add(MsoDrawingType.TEXT_BOX, ...).

Свойства и итерация

ImageRenderOptionsImageRenderOptions
countКоличество объектов в коллекции (только для чтения).
__len__()ImageRenderOptions count.
__iter__()Итерирует по всем Shape объекты.
__getitem__(index)Возвращает Shape по нулевой основе index.

ImageRenderOptions

Добавить прямоугольник с сплошной заливкой

from aspose.cells_foss import Workbook, MsoDrawingType, FillType, MsoLineDashStyle, TextAlignmentType

wb = Workbook()
ws = wb.worksheets[0]

# Add a blue rectangle spanning rows 1-5, columns 1-4 (0-based)
rect = ws.shapes.add(MsoDrawingType.RECTANGLE, 1, 1, 5, 4)
rect.name = "BlueBox"

rect.fill.fill_type = FillType.SOLID
rect.fill.fore_color = "4472C4"      # blue
rect.fill.transparency = 0.0

rect.line.is_visible = True
rect.line.color = "1F3864"           # dark blue
rect.line.weight = 2
rect.line.dash_style = MsoLineDashStyle.SOLID

rect.text = "Sales Summary"
rect.font.bold = True
rect.font.color = "FFFFFF"           # white text
rect.font.size = 12
rect.text_horizontal_alignment = TextAlignmentType.CENTER

wb.save("shapes.xlsx")

Добавить текстовое поле

from aspose.cells_foss import Workbook

wb = Workbook()
ws = wb.worksheets[0]

tb = ws.shapes.add_text_box(2, 0, 5, 3)
tb.name = "NoteBox"
tb.text = "Review this section before publishing."
tb.font.italic = True
tb.font.color = "595959"
tb.is_text_wrapped = True
tb.line.is_visible = True
tb.line.color = "BFBFBF"

wb.save("textbox.xlsx")

См. также

 Русский