Настройка таблиц данных диаграмм в презентациях с использованием Java

Обзор

Aspose.Slides for Java позволяет отображать таблицу данных диаграммы и настраивать форматирование текста, границы и маркеры легенды. В этой статье объясняется, как включить таблицу, отформатировать её текст, управлять каждым типом границы и показывать или скрывать маркеры легенды. Примеры сохраняют настроенные диаграммы в файлы PPTX.

Установить свойства шрифта

Чтобы отобразить таблицу данных диаграммы, передайте true в setDataTable. Используйте getChartDataTable для доступа к таблице и настройки её форматирования текста.

  1. Загрузите презентацию, используя класс Presentation.
  2. Добавьте сгруппированную столбцовую диаграмму на первый слайд.
  3. Включите таблицу данных диаграммы.
  4. Включите полужирный текст с помощью setFontBold и передайте 20 в setFontHeight для текста размером 20 пунктов.
  5. Сохраните изменённую презентацию.

Следующий пример требует файл test.pptx в рабочем каталоге, содержащий минимум один слайд. Он добавляет диаграмму с данными по умолчанию в позицию (50, 50) с шириной 600 пунктов и высотой 400 пунктов. Сохранённый файл output.pptx содержит диаграмму с включённой таблицей данных и применёнными указанными настройками шрифта.

import com.aspose.slides.*;

Presentation presentation = new Presentation("test.pptx");
try {
    ISlide slide = presentation.getSlides().get_Item(0);

    IChart chart = slide.getShapes().addChart(ChartType.ClusteredColumn, 50, 50, 600, 400);
    chart.setDataTable(true);

    IChartPortionFormat portionFormat = chart.getChartDataTable().getTextFormat().getPortionFormat();
    portionFormat.setFontBold(NullableBool.True);
    portionFormat.setFontHeight(20);

    presentation.save("output.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

Настроить границы таблицы данных

Включите таблицу с помощью IChart.setDataTable и получите к ней доступ через IChart.getChartDataTable. Вы можете независимо управлять тремя типами границ:

  • setBorderHorizontal управляет горизонтальными границами ячеек.
  • setBorderVertical управляет вертикальными границами ячеек.
  • setBorderOutline управляет внешней границей таблицы.

Передайте true каждому методу, чтобы отобразить соответствующие границы, или false — чтобы скрыть их. Следующий пример создаёт сгруппированную столбцовую диаграмму с данными по умолчанию, отображает горизонтальные границы и внешнюю границу, скрывая вертикальные границы. Входной файл не требуется. Позиция и размер диаграммы указаны в пунктах.

import com.aspose.slides.*;

Presentation presentation = new Presentation();
try {
    ISlide slide = presentation.getSlides().get_Item(0);

    IChart chart = slide.getShapes().addChart(ChartType.ClusteredColumn, 50, 50, 600, 400);
    chart.setDataTable(true);

    IDataTable dataTable = chart.getChartDataTable();
    dataTable.setBorderHorizontal(true);
    dataTable.setBorderVertical(false);
    dataTable.setBorderOutline(true);

    presentation.save("data-table-borders.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

Сравнение ниже использует одинаковые данные диаграммы и настройку маркеров легенды во всех четырёх случаях. Начиная с включёнными всеми границами, каждый последующий вариант отключает только одну настройку границы. Нижний левый вариант соответствует настройкам границ из примера.

Таблицы данных диаграмм со всеми включёнными границами, без горизонтальных границ, без вертикальных границ и без внешней границы

Показать или скрыть маркеры легенды

Маркеры легенды — это небольшие цветные индикаторы рядом с названиями рядов в таблице данных. Они помогают читателю сопоставить каждую строку таблицы с соответствующим рядом диаграммы. Передайте true в setShowLegendKey, чтобы отобразить эти индикаторы, или false, чтобы скрыть их.

Отдельная легенда диаграммы управляется методом IChart.setLegend. Эти настройки независимы: скрытие отдельной легенды не скрывает маркеры внутри таблицы данных, и скрытие маркеров таблицы не скрывает отдельную легенду.

Следующий пример создаёт диаграмму с данными по умолчанию, включает её таблицу данных и показывает маркеры легенды внутри неё, одновременно скрывая отдельную легенду. Все границы таблицы явно включены. Входная презентация не требуется. Чтобы скрыть только маркеры таблицы, передайте false в setShowLegendKey.

import com.aspose.slides.*;

Presentation presentation = new Presentation();
try {
    ISlide slide = presentation.getSlides().get_Item(0);

    IChart chart = slide.getShapes().addChart(ChartType.ClusteredColumn, 50, 50, 600, 400);
    chart.setDataTable(true);
    chart.setLegend(false);

    IDataTable dataTable = chart.getChartDataTable();
    dataTable.setBorderHorizontal(true);
    dataTable.setBorderVertical(true);
    dataTable.setBorderOutline(true);
    dataTable.setShowLegendKey(true);

    presentation.save("data-table-legend-keys.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

Сравнение ниже показывает одну и ту же таблицу с включёнными и отключёнными маркерами легенды. Все границы остаются включёнными, а отдельная легенда диаграммы скрыта в обоих случаях.

Таблицы данных диаграмм с отображёнными маркерами легенды слева и скрытыми справа

FAQ

Могу ли я показывать маркеры легенды в таблице данных диаграммы?

Да. Передайте true в setShowLegendKey, чтобы отобразить маркеры легенды, или false, чтобы скрыть их.

Будет ли таблица данных сохраняться при экспорте презентации в PDF, HTML или изображения?

Да. Aspose.Slides рендерит диаграмму и её отображаемую таблицу данных как часть слайда при экспорте в PDF, HTML или изображения.

Могу ли я работать с таблицами данных в диаграммах, загруженных из шаблона?

Да. Для диаграммы, загруженной из существующей презентации или шаблона, используйте hasDataTable и setDataTable, чтобы проверить или изменить отображение её таблицы данных.

Как найти диаграммы, у которых включена таблица данных?

Пройдитесь по всем фигурам на каждом слайде, определите диаграммы и вызовите их метод hasDataTable. Значение true указывает, что таблица данных включена.