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, SparklineGroupSparklineType
SparklineType является IntEnum определяющим визуальную форму группы sparklines.
| ImageRenderOptions | ImageRenderOptions | ImageRenderOptions |
|---|---|---|
LINE | 0 | Линейный sparkline — отображает данные в виде соединённой линии. |
COLUMN | 1 | Столбцовый sparkline — отображает данные в виде вертикальных столбцов. |
WIN_LOSS | 2 | График выигрышей/проигрышей — каждое значение отображается как положительный или отрицательный блок. |
SparklineEmptyCells
SparklineEmptyCells является IntEnum управляет тем, как пустые ячейки обрабатываются в спарклайне.
| ImageRenderOptions | ImageRenderOptions | ImageRenderOptions |
|---|---|---|
ZERO | 0 | Считает пустые ячейки нулём. |
GAP | 1 | Оставляет пробел там, где ячейки пусты (линия прерывается). |
CONNECTED | 2 | Соединяет соседние непустые значения, пропуская пробел. |
ImageRenderOptions
A Sparkline привязывает один диапазон данных к одной ячейке.
ImageRenderOptions
Sparkline(data_range: str, cell_reference: str)| ImageRenderOptions | ImageRenderOptions | ImageRenderOptions |
|---|---|---|
data_range | str | Диапазон в стиле A1, содержащий исходные данные спарклайна (например,., "Sheet1!B2:G2"). |
cell_reference | str | Адрес ячейки в стиле A1, где отображается спарклайн (например,., "H2"). |
ImageRenderOptions
| ImageRenderOptions | ImageRenderOptions | ImageRenderOptions |
|---|---|---|
data_range | str | Диапазон исходных данных. |
cell_reference | str | Адрес ячейки отображения. |
SparklineGroup
A SparklineGroup определяет общие визуальные настройки (тип, цвета, обработка пустых ячеек) для набора спарклайнов. SparklineGroup объекты не создаются напрямую — используйте ws.sparkline_groups.add(...) или ws.sparkline_groups.add_group(...).
ImageRenderOptions
| ImageRenderOptions | ImageRenderOptions | ImageRenderOptions |
|---|---|---|
type | SparklineType | Форма спарклайна: LINE, COLUMN, или WIN_LOSS. |
display_empty_cells_as | SparklineEmptyCells | Как обрабатывать пустые ячейки в диапазоне данных. |
color_series | str | Цвет основной линии/полос спарклайна, в виде RRGGBB hex. |
color_negative | str | Цвет полос с отрицательными значениями (WIN_LOSS и COLUMN), в виде RRGGBB hex. |
color_axis | str | Цвет линии нулевой оси, в виде RRGGBB hex. |
color_markers | str | Цвет маркеров точек данных на линейных спарклайнах, в виде RRGGBB hex. |
color_first | str | Цвет выделения первой точки данных, в виде RRGGBB hex. |
color_last | str | Цвет выделения для последней точки данных, в виде шестнадцатеричного RRGGBB. |
color_high | str | Цвет выделения для самой высокой точки данных, в виде шестнадцатеричного RRGGBB. |
color_low | str | Цвет выделения для самой низкой точки данных, в виде шестнадцатеричного RRGGBB. |
sparklines | list[Sparkline] | Только для чтения список отдельных спарклайнов в этой группе. |
count | int | Количество спарклайнов в этой группе (только для чтения). |
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.
| ImageRenderOptions | ImageRenderOptions | ImageRenderOptions |
|---|---|---|
sparkline_type | SparklineType | Визуальный вид спарклайнов. |
data_range | `str | None` |
is_vertical | bool | ImageRenderOptions True, каждый столбец в data_range подаёт один sparkline; когда False, каждая строка делает. |
location_range | `str | None` |
add_group
ws.sparkline_groups.add_group(sparkline_type=SparklineType.LINE) -> SparklineGroupСоздаёт пустую группу указанного типа. Sparklines должны добавляться по отдельности с помощью group.add_sparkline(...).
Свойства и итерация
| ImageRenderOptions | ImageRenderOptions |
|---|---|
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")