Настройка таблиц данных диаграмм в презентациях с использованием Java
Обзор
Aspose.Slides for Java позволяет отображать таблицу данных диаграммы и настраивать форматирование текста, границы и маркеры легенды. В этой статье объясняется, как включить таблицу, отформатировать её текст, управлять каждым типом границы и показывать или скрывать маркеры легенды. Примеры сохраняют настроенные диаграммы в файлы PPTX.
Установить свойства шрифта
Чтобы отобразить таблицу данных диаграммы, передайте true в setDataTable. Используйте getChartDataTable для доступа к таблице и настройки её форматирования текста.
- Загрузите презентацию, используя класс Presentation.
- Добавьте сгруппированную столбцовую диаграмму на первый слайд.
- Включите таблицу данных диаграммы.
- Включите полужирный текст с помощью setFontBold и передайте
20в setFontHeight для текста размером 20 пунктов. - Сохраните изменённую презентацию.
Следующий пример требует файл 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 указывает, что таблица данных включена.