Встраивание визуальных данных непосредственно в файлы Word может превратить статические отчёты в убедительные презентации. Conholdate.Total for Java предоставляет мощный SDK, упрощающий создание диаграмм и их вставку в документы DOCX. В этом руководстве мы пройдёмся по полному, компилируемому примеру, который показывает, как создавать диаграммы в документах Word с использованием Java, настроить диаграмму и сохранить результат. К концу вы сможете автоматизировать генерацию документов с динамическими диаграммами для любой бизнес‑аналитической задачи.
Полный рабочий пример встраивания диаграмм в документы Word с использованием Java
В этом примере демонстрируется, как построить столбчатую диаграмму с пятью рядами данных и вставить её в документ Word.
import com.aspose.words.Document;
import com.aspose.words.DocumentBuilder;
import com.aspose.words.Shape;
import com.aspose.words.ChartType;
import com.aspose.words.Chart;
import com.aspose.words.ChartSeriesCollection;
public class CreateChartInWord {
public static void main(String[] args) {
// Create a document
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
// Add chart with default data. You can specify different chart types and sizes.
Shape shape = builder.insertChart(ChartType.COLUMN, 432, 252);
// Chart property of Shape contains all chart related options.
Chart chart = shape.getChart();
// Get chart series collection.
ChartSeriesCollection seriesColl = chart.getSeries();
// Check series count.
System.out.println(seriesColl.getCount());
// Delete default generated series.
seriesColl.clear();
// Create category names array, in this example we have two categories.
String[] categories = new String[] { "AW Category 1", "AW Category 2" };
// Adding new series. Please note, data arrays must not be empty and arrays must be the same size.
seriesColl.add("AW Series 1", categories, new double[] { 1, 2 });
seriesColl.add("AW Series 2", categories, new double[] { 3, 4 });
seriesColl.add("AW Series 3", categories, new double[] { 5, 6 });
seriesColl.add("AW Series 4", categories, new double[] { 7, 8 });
seriesColl.add("AW Series 5", categories, new double[] { 9, 10 });
// Save the document
doc.save("ColumnsChart.docx");
}
}
Примечание: Этот пример кода демонстрирует основную функциональность. Прежде чем использовать его в вашем проекте, убедитесь, что путь вывода (
ColumnsChart.docx) указывает на каталог, доступный для записи, проверьте, что все необходимые зависимости правильно установлены, и тщательно протестируйте в вашей среде разработки. Если возникнут проблемы, обратитесь к официальной документации или свяжитесь с командой поддержки для получения помощи.
Как создавать диаграммы в документах Word с помощью Java
Рабочий процесс можно разбить на пять четких шагов:
Создать документ и DocumentBuilder –
Documentкласс представляет файл Word в памяти, аDocumentBuilderпредоставляет удобный API для вставки содержимого, включая диаграммы.Document doc = new Document(); DocumentBuilder builder = new DocumentBuilder(doc);Вставить форму диаграммы –
insertChartпринимаетChartType(например,COLUMN) вместе с шириной и высотой в пунктах и возвращаетShape, который размещает диаграмму на странице.
Shape shape = builder.insertChart(ChartType.COLUMN, 432, 252);
- Доступ к объекту Chart – Свойство
ChartуShapeраскрывает все параметры, связанные с диаграммами, включая её коллекцию рядов.
Chart chart = shape.getChart();
ChartSeriesCollection seriesColl = chart.getSeries();
System.out.println(seriesColl.getCount());
Смотрите API reference для получения полной информации о Chart, ChartSeriesCollection и связанных перечислениях.
- Очистить серии по умолчанию и добавить свои - При вставке нового графика уже присутствуют заполнители серий, поэтому
clear()удаляет их перед тем, как вы добавляете категории и данные с помощьюadd(). Массивы категорий и значений, передаваемые в один и тот же вызовadd(), должны иметь одинаковую длину.seriesColl.clear();
String[] categories = new String[] { “AW Category 1”, “AW Category 2” };
seriesColl.add(“AW Series 1”, categories, new double[] { 1, 2 }); seriesColl.add(“AW Series 2”, categories, new double[] { 3, 4 });
<!--[CODE_SNIPPET_END]-->
5. **Сохранить документ** - Наконец, `doc.save()` записывает DOCX на диск.
<!--[CODE_SNIPPET_START]-->
```java
doc.save("ColumnsChart.docx");
Понимание каждого из этих шагов упрощает адаптацию примера для различных типов диаграмм, источников данных или шаблонов документов.
Подготовка окружения
Добавьте репозиторий Maven Conholdate и зависимость SDK в ваш pom.xml:
<repositories>
<repository>
<id>conholdate-repo</id>
<name>Conholdate Maven Repository</name>
<url>https://repository.conholdate.com/repo/</url>
</repository>
</repositories>
<dependency>
<groupId>com.conholdate</groupId>
<artifactId>conholdate-total</artifactId>
<version>24.9</version>
<type>pom</type>
</dependency>
Скачайте последнюю версию SDK пакета со страницы загрузки. Библиотека требует Java 8 или выше и работает на любой стандартной JVM. Дополнительные серверные компоненты не требуются.
Тонкая настройка генерации диаграмм
Вы можете настроить несколько свойств, чтобы соответствовать вашему визуальному стилю:
- Тип диаграммы - Измените
ChartType.COLUMNнаChartType.BAR,ChartType.LINE,ChartType.PIE,ChartType.SCATTERи другие поддерживаемые типы.
Shape shape = builder.insertChart(ChartType.BAR, 432, 252);
Размер диаграммы - Второй и третий аргументы функции
insertChartуправляют шириной и высотой формы диаграммы, измеряемыми в пунктах.Shape shape = builder.insertChart(ChartType.COLUMN, 500, 300);Категории (метки оси) - Создайте массив
String[]с именами категорий и переиспользуйте его для каждой серии, которая использует те же категории.String[] categories = new String[] { "Jan", "Feb", "Mar" };Data Series - Вызовите
seriesColl.add()с именем серии, массивом категорий иdouble[]значений, чтобы добавить столько сравнительных серий, сколько вам нужно.seriesColl.add("2021", categories, new double[] { 200, 220, 250 });
Эти параметры позволяют адаптировать диаграмму к любым требованиям отчетности, сохраняя код лаконичным.
Вставка диаграммы рассеяния в документ Word с помощью Java
Диаграммы рассеяния отображают пары числовых значений X и Y вместо категорий, что делает их полезными для визуализации корреляций или распределений. ChartSeriesCollection предоставляет перегрузку метода add() специально для этой цели: вместо массива категорий вы передаёте два массива double[], один для значений X и один для значений Y.
import com.aspose.words.Document;
import com.aspose.words.DocumentBuilder;
import com.aspose.words.Shape;
import com.aspose.words.ChartType;
import com.aspose.words.Chart;
public class InsertScatterChart {
public static void main(String[] args) {
// Create a new document
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
// Insert Scatter chart.
Shape shape = builder.insertChart(ChartType.SCATTER, 432, 252);
Chart chart = shape.getChart();
// Use this overload to add series to any type of Scatter charts.
chart.getSeries().add("AW Series 1", new double[] { 0.7, 1.8, 2.6 }, new double[] { 2.7, 3.2, 0.8 });
// Save the document
doc.save("ScatterChart.docx");
}
}
Общий процесс повторяет пример столбчатой диаграммы: создайте Document и DocumentBuilder, вставьте форму диаграммы с ChartType.SCATTER, получите Chart из формы и добавьте одну или несколько серий. Поскольку точечные диаграммы отображают пары координат X/Y, отдельный массив категорий отсутствует — каждая точка определяется совпадающими элементами массивов значений X и Y. Сохраните с помощью doc.save(), когда все серии будут добавлены.
Заключение
Встраивание визуальных данных непосредственно в файлы DOCX — мощный способ улучшить автоматизированные отчёты. С помощью Conholdate.Total for Java вы можете создавать диаграммы в документах Word, используя Java, всего в несколько строк кода — включая столбчатые, гистограммы, линейные, круговые и точечные диаграммы — настраивать категории и серии, а также генерировать профессионально выглядящие документы на стороне сервера. Не забудьте получить соответствующую лицензию для использования в продакшене; временная лицензия доступна на странице страница временной лицензии, а полную информацию о ценах можно посмотреть на странице страница с ценами. Начните интегрировать генерацию диаграмм уже сегодня и предоставьте своим пользователям документы, основанные на данных, которые выделяются.
Часто задаваемые вопросы
Как создать диаграммы в документах Word, используя Java и Conholdate.Total? Вызовите
insertChartуDocumentBuilderс нужнымChartType, получитеChartиз возвращённогоShape, очистите серию по умолчанию и добавьте свои категории и данные с помощьюseriesColl.add(), затем сохраните документ. Полный код показан в примере выше.Какие типы диаграмм поддерживаются? SDK поддерживает столбчатые, гистограммы, линейные, круговые, точечные и многие другие стандартные типы диаграмм через перечисление
ChartType. Измените значение перечисления, передаваемое вinsertChart, чтобы переключать типы.Как диаграмма рассеяния отличается от столбчатой или линейчатой диаграммы? Диаграмма рассеяния отображает пары числовых значений X и Y вместо именованных категорий, поэтому вы используете перегрузку
add(name, xValues, yValues)коллекцииChartSeriesCollection, а не передаёте массив категорий.Нужно ли устанавливать лицензию для генерации диаграмм? Да. Временную лицензию можно получить на странице страница временной лицензии. Для долгосрочных проектов приобретите полную лицензию через страницу с ценами.
Совместим ли SDK со сборками Maven и Gradle? Абсолютно. Добавьте репозиторий Maven Conholdate и зависимость
conholdate-totalв ваш файл сборки, как показано в разделе Setup, и библиотека будет работать как с Maven, так и с Gradle.
