Встраивание визуальных данных непосредственно в файлы 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

Рабочий процесс можно разбить на пять четких шагов:

  1. Создать документ и DocumentBuilderDocument класс представляет файл Word в памяти, а DocumentBuilder предоставляет удобный API для вставки содержимого, включая диаграммы.

    Document doc = new Document();
    DocumentBuilder builder = new DocumentBuilder(doc);
    
  2. Вставить форму диаграммыinsertChart принимает ChartType (например, COLUMN) вместе с шириной и высотой в пунктах и возвращает Shape, который размещает диаграмму на странице.

Shape shape = builder.insertChart(ChartType.COLUMN, 432, 252);
  1. Доступ к объекту Chart – Свойство Chart у Shape раскрывает все параметры, связанные с диаграммами, включая её коллекцию рядов.
Chart chart = shape.getChart();
ChartSeriesCollection seriesColl = chart.getSeries();
System.out.println(seriesColl.getCount());

Смотрите API reference для получения полной информации о Chart, ChartSeriesCollection и связанных перечислениях.

  1. Очистить серии по умолчанию и добавить свои - При вставке нового графика уже присутствуют заполнители серий, поэтому 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.

Читать далее