Настройка таблиц данных диаграмм в презентациях с использованием Python
Обзор
Aspose.Slides for Python via Java позволяет отображать таблицу данных диаграммы и настраивать её форматирование текста, границы и ключи легенды. В этой статье объясняется, как включить таблицу, форматировать её текст, управлять каждым типом границы и показывать или скрывать ключи легенды. Примеры сохраняют настроенные диаграммы в файлы PPTX.
Установить свойства шрифта
Чтобы отобразить таблицу данных диаграммы, передайте True в setDataTable. Используйте getChartDataTable для доступа к таблице и настройки её форматирования текста.
- Загрузите презентацию с помощью класса Presentation.
- Добавьте сгруппированную столбчатую диаграмму на первый слайд.
- Включите таблицу данных диаграммы.
- Включите полужирный шрифт с помощью setFontBold и передайте
20в setFontHeight для текста размером 20 пунктов. - Сохраните изменённую презентацию.
Следующий пример требует файл test.pptx в рабочем каталоге, содержащий хотя бы один слайд. Он добавляет диаграмму с данными по умолчанию в позицию (50, 50) с шириной 600 пунктов и высотой 400 пунктов. Сохранённый output.pptx содержит диаграмму с включенной таблицей данных и применёнными настройками шрифта.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import ChartType, NullableBool, Presentation, SaveFormat
presentation = Presentation("test.pptx")
try:
slide = presentation.getSlides().get_Item(0)
chart = slide.getShapes().addChart(ChartType.ClusteredColumn, 50, 50, 600, 400)
chart.setDataTable(True)
portion_format = chart.getChartDataTable().getTextFormat().getPortionFormat()
portion_format.setFontBold(NullableBool.True_)
portion_format.setFontHeight(20)
presentation.save("output.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Настройка границ таблицы данных
Включите таблицу с помощью Chart.setDataTable и получите к ней доступ через Chart.getChartDataTable. Вы можете независимо управлять тремя типами границ:
- setBorderHorizontal управляет горизонтальными границами ячеек.
- setBorderVertical управляет вертикальными границами ячеек.
- setBorderOutline управляет внешней границей таблицы.
Передайте True в каждый метод, чтобы отобразить границы, или False, чтобы скрыть их. Ниже приведён пример, который создаёт сгруппированную столбчатую диаграмму с данными по умолчанию, отображает горизонтальные границы и внешнюю границу, а вертикальные границы скрывает. Входной файл не требуется. Позиция и размер диаграммы указаны в пунктах.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import ChartType, Presentation, SaveFormat
presentation = Presentation()
try:
slide = presentation.getSlides().get_Item(0)
chart = slide.getShapes().addChart(ChartType.ClusteredColumn, 50, 50, 600, 400)
chart.setDataTable(True)
data_table = chart.getChartDataTable()
data_table.setBorderHorizontal(True)
data_table.setBorderVertical(False)
data_table.setBorderOutline(True)
presentation.save("data-table-borders.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Сравнение ниже использует одни и те же данные диаграммы и настройку ключей легенды во всех четырёх случаях. Начиная с включёнными всеми границами, каждый последующий вариант отключает только одну настройку границы. Нижний‑левый вариант соответствует настройкам границ в примере.

Показ или скрытие ключей легенды
Ключи легенды — это небольшие цветные маркеры рядом с названиями рядов в таблице данных. Они помогают читателю сопоставить каждую строку таблицы с серией диаграммы. Передайте True в setShowLegendKey, чтобы показать эти маркеры, или False, чтобы скрыть их.
Отдельная легенда диаграммы управляется методом Chart.setLegend. Эти настройки независимы: скрытие отдельной легенды не скрывает ключи внутри таблицы данных, и скрытие ключей таблицы не скрывает отдельную легенду.
Следующий пример создаёт диаграмму с данными по умолчанию, включает её таблицу данных и показывает ключи легенды внутри неё, при этом скрывая отдельную легенду. Все границы таблицы явно включены. Входная презентация не требуется. Чтобы скрыть только ключи таблицы, передайте False в setShowLegendKey.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import ChartType, Presentation, SaveFormat
presentation = Presentation()
try:
slide = presentation.getSlides().get_Item(0)
chart = slide.getShapes().addChart(ChartType.ClusteredColumn, 50, 50, 600, 400)
chart.setDataTable(True)
chart.setLegend(False)
data_table = chart.getChartDataTable()
data_table.setBorderHorizontal(True)
data_table.setBorderVertical(True)
data_table.setBorderOutline(True)
data_table.setShowLegendKey(True)
presentation.save("data-table-legend-keys.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Сравнение ниже показывает одну и ту же таблицу с включёнными и отключёнными ключами легенды. Все границы остаются включёнными, а отдельная легенда диаграммы скрыта в обоих случаях.

FAQ
Можно ли показать ключи легенды в таблице данных диаграммы?
Да. Передайте True в setShowLegendKey, чтобы отобразить ключи легенды, или False, чтобы скрыть их.
Будет ли таблица данных сохранена при экспорте презентации в PDF, HTML или изображения?
Да. Aspose.Slides рендерит диаграмму и её отображаемую таблицу данных как часть слайда при экспорте в PDF, HTML, или images.
Можно ли работать с таблицами данных в диаграммах, загруженных из шаблона?
Да. Для диаграммы, загруженной из существующей презентации или шаблона, используйте hasDataTable и setDataTable, чтобы проверить или изменить, отображается ли её таблица данных.
Как найти диаграммы, у которых включена таблица данных?
Пройдитесь по всем фигурам на каждом слайде, идентифицируйте диаграммы и вызовите их метод hasDataTable. Значение True указывает, что таблица данных включена.