Sparkline — Aspose.Cells FOSS for Python API Reference

Sparklines — это миниатюрные диаграммы, встроенные в отдельные ячейки, появившиеся в Excel 2010. aspose-cells-foss управляет sparklines через SparklineGroup и SparklineGroupCollection (ws.sparkline_groups). Каждая группа содержит один или несколько Sparkline объектов, имеющих одинаковый тип и настройки цвета.

ImageRenderOptions: aspose.cells_foss

from aspose.cells_foss import SparklineType, SparklineEmptyCells, Sparkline, SparklineGroup

SparklineType

SparklineType является IntEnum определяющим визуальную форму группы sparklines.

ImageRenderOptionsImageRenderOptionsImageRenderOptions
LINE0Линейный sparkline — отображает данные в виде соединённой линии.
COLUMN1Столбцовый sparkline — отображает данные в виде вертикальных столбцов.
WIN_LOSS2График выигрышей/проигрышей — каждое значение отображается как положительный или отрицательный блок.

SparklineEmptyCells

SparklineEmptyCells является IntEnum управляет тем, как пустые ячейки обрабатываются в спарклайне.

ImageRenderOptionsImageRenderOptionsImageRenderOptions
ZERO0Считает пустые ячейки нулём.
GAP1Оставляет пробел там, где ячейки пусты (линия прерывается).
CONNECTED2Соединяет соседние непустые значения, пропуская пробел.

ImageRenderOptions

A Sparkline привязывает один диапазон данных к одной ячейке.

ImageRenderOptions

Sparkline(data_range: str, cell_reference: str)
ImageRenderOptionsImageRenderOptionsImageRenderOptions
data_rangestrДиапазон в стиле A1, содержащий исходные данные спарклайна (например,., "Sheet1!B2:G2").
cell_referencestrАдрес ячейки в стиле A1, где отображается спарклайн (например,., "H2").

ImageRenderOptions

ImageRenderOptionsImageRenderOptionsImageRenderOptions
data_rangestrДиапазон исходных данных.
cell_referencestrАдрес ячейки отображения.

SparklineGroup

A SparklineGroup определяет общие визуальные настройки (тип, цвета, обработка пустых ячеек) для набора спарклайнов. SparklineGroup объекты не создаются напрямую — используйте ws.sparkline_groups.add(...) или ws.sparkline_groups.add_group(...).

ImageRenderOptions

ImageRenderOptionsImageRenderOptionsImageRenderOptions
typeSparklineTypeФорма спарклайна: LINE, COLUMN, или WIN_LOSS.
display_empty_cells_asSparklineEmptyCellsКак обрабатывать пустые ячейки в диапазоне данных.
color_seriesstrЦвет основной линии/полос спарклайна, в виде RRGGBB hex.
color_negativestrЦвет полос с отрицательными значениями (WIN_LOSS и COLUMN), в виде RRGGBB hex.
color_axisstrЦвет линии нулевой оси, в виде RRGGBB hex.
color_markersstrЦвет маркеров точек данных на линейных спарклайнах, в виде RRGGBB hex.
color_firststrЦвет выделения первой точки данных, в виде RRGGBB hex.
color_laststrЦвет выделения для последней точки данных, в виде шестнадцатеричного RRGGBB.
color_highstrЦвет выделения для самой высокой точки данных, в виде шестнадцатеричного RRGGBB.
color_lowstrЦвет выделения для самой низкой точки данных, в виде шестнадцатеричного RRGGBB.
sparklineslist[Sparkline]Только для чтения список отдельных спарклайнов в этой группе.
countintКоличество спарклайнов в этой группе (только для чтения).

ImageRenderOptions

add_sparkline

group.add_sparkline(data_range: str, cell_reference: str) -> Sparkline

Добавляет отдельный спарклайн в эту группу и возвращает новый Sparkline объект.


SparklineGroupCollection

SparklineGroupCollection доступен как ws.sparkline_groups. Он содержит все группы спарклайнов на рабочем листе.

ImageRenderOptions

add

ws.sparkline_groups.add(
    sparkline_type=SparklineType.LINE,
    data_range=None,
    is_vertical=False,
    location_range=None
) -> SparklineGroup

Создаёт новую группу и при желании заполняет её спарклайнами, полученными из data_range (строк или столбцов в зависимости от is_vertical) размещённых в ячейках, описанных location_range. Возвращает новый SparklineGroup.

ImageRenderOptionsImageRenderOptionsImageRenderOptions
sparkline_typeSparklineTypeВизуальный вид спарклайнов.
data_range`strNone`
is_verticalboolImageRenderOptions True, каждый столбец в data_range подаёт один sparkline; когда False, каждая строка делает.
location_range`strNone`

add_group

ws.sparkline_groups.add_group(sparkline_type=SparklineType.LINE) -> SparklineGroup

Создаёт пустую группу указанного типа. Sparklines должны добавляться по отдельности с помощью group.add_sparkline(...).

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

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

ImageRenderOptions

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

from aspose.cells_foss import Workbook, SparklineType, SparklineEmptyCells

wb = Workbook()
ws = wb.worksheets[0]
ws.name = "Trends"

# Write headers
months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun"]
for col, m in enumerate(months):
    ws.cells[0][col + 1].put_value(m)

ws.cells["A1"].put_value("Region")
ws.cells["H1"].put_value("Trend")

# Write three rows of data
regions = [
    ("North", [12000, 14500, 13800, 16200, 15900, 17400]),
    ("South", [9800,  10200, 11500, 10900, 12300, 13100]),
    ("West",  [7500,   8100,  7900,  8800,  9200, 10500]),
]
for row_i, (name, values) in enumerate(regions, start=1):
    ws.cells[row_i][0].put_value(name)
    for col_i, v in enumerate(values):
        ws.cells[row_i][col_i + 1].put_value(v)

# Add a line sparkline group — one sparkline per data row
group = ws.sparkline_groups.add(
    sparkline_type=SparklineType.LINE,
    data_range="Trends!B2:G4",
    is_vertical=False,
    location_range="Trends!H2:H4",
)

# Customize colors
group.color_series = "4472C4"       # blue lines
group.color_high   = "70AD47"       # green for peak
group.color_low    = "FF0000"       # red for trough
group.display_empty_cells_as = SparklineEmptyCells.GAP

wb.save("sparklines.xlsx")

См. также

 Русский