Nhúng dữ liệu trực quan trực tiếp vào các tệp Word có thể biến các báo cáo tĩnh thành các bản trình bày hấp dẫn. Conholdate.Total for Java cung cấp một SDK mạnh mẽ giúp đơn giản hóa việc tạo và chèn biểu đồ trong các tài liệu DOCX. Trong hướng dẫn này, chúng tôi sẽ hướng dẫn bạn qua một ví dụ hoàn chỉnh, có thể biên dịch, cho thấy cách tạo biểu đồ trong tài liệu Word bằng Java, cấu hình biểu đồ và lưu kết quả. Khi kết thúc, bạn sẽ có thể tự động tạo tài liệu với các biểu đồ động cho bất kỳ kịch bản báo cáo kinh doanh nào.

Ví dụ Hoàn chỉnh về Nhúng Biểu đồ trong Tài liệu Word bằng Java

Ví dụ này minh họa cách tạo biểu đồ cột với năm chuỗi dữ liệu và chèn nó vào tài liệu 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");
    }
}

Lưu ý: Ví dụ mã này minh họa chức năng cốt lõi. Trước khi sử dụng trong dự án của bạn, hãy đảm bảo rằng đường dẫn đầu ra (ColumnsChart.docx) trỏ tới một thư mục có thể ghi, xác minh rằng tất cả các phụ thuộc cần thiết đã được cài đặt đúng cách, và kiểm tra kỹ lưỡng trong môi trường phát triển của bạn. Nếu bạn gặp bất kỳ vấn đề nào, vui lòng tham khảo tài liệu chính thức hoặc liên hệ với đội hỗ trợ để được trợ giúp.

Cách tạo biểu đồ trong tài liệu Word bằng Java hoạt động

Quy trình làm việc có thể được chia thành năm bước rõ ràng:

  1. Tạo một Document và DocumentBuilder - Lớp Document đại diện cho tệp Word trong bộ nhớ, và DocumentBuilder cung cấp cho bạn một API linh hoạt để chèn nội dung, bao gồm cả biểu đồ.

    Document doc = new Document();
    DocumentBuilder builder = new DocumentBuilder(doc);
    
  2. Chèn một hình biểu đồ - insertChart nhận một ChartType (ví dụ, COLUMN) cùng với chiều rộng và chiều cao tính bằng điểm, và trả về một Shape chứa biểu đồ trên trang.

Shape shape = builder.insertChart(ChartType.COLUMN, 432, 252);
  1. Truy cập đối tượng Chart - Thuộc tính Chart của Shape cung cấp tất cả các tùy chọn liên quan đến biểu đồ, bao gồm bộ sưu tập series của nó.
Chart chart = shape.getChart();
ChartSeriesCollection seriesColl = chart.getSeries();
System.out.println(seriesColl.getCount());

Xem API reference để biết chi tiết đầy đủ về Chart, ChartSeriesCollection và các enum liên quan.

  1. Xóa các chuỗi mặc định và thêm chuỗi của bạn - Một biểu đồ mới chèn đã chứa các chuỗi placeholder, vì vậy clear() sẽ xóa chúng trước khi bạn thêm danh mục và dữ liệu bằng add(). Các mảng danh mục và giá trị được truyền vào cùng một lời gọi add() phải có cùng độ dài.
    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. **Lưu tài liệu** - Cuối cùng, `doc.save()` ghi tệp DOCX vào đĩa.
<!--[CODE_SNIPPET_START]-->
```java
doc.save("ColumnsChart.docx");

Hiểu mỗi bước trong số này sẽ giúp dễ dàng điều chỉnh ví dụ cho các loại biểu đồ khác nhau, nguồn dữ liệu hoặc mẫu tài liệu.

Chuẩn bị môi trường Ready

Thêm repository Maven của Conholdate và phụ thuộc SDK vào pom.xml của bạn:

<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>

Tải xuống gói SDK mới nhất từ trang tải xuống. Thư viện yêu cầu Java 8 trở lên và chạy trên bất kỳ JVM tiêu chuẩn nào. Không cần thành phần máy chủ bổ sung.

Tinh chỉnh việc tạo biểu đồ

Bạn có thể điều chỉnh một số thuộc tính để phù hợp với phong cách trực quan của mình:

  • Loại biểu đồ - Thay đổi ChartType.COLUMN thành ChartType.BAR, ChartType.LINE, ChartType.PIE, ChartType.SCATTER, và các loại hỗ trợ khác.

    Shape shape = builder.insertChart(ChartType.BAR, 432, 252);
    
  • Chart Size - Tham số thứ hai và thứ ba của insertChart kiểm soát chiều rộng và chiều cao của hình biểu đồ, tính bằng điểm.

Shape shape = builder.insertChart(ChartType.COLUMN, 500, 300);
  • Categories (axis labels) - Tạo một String[] chứa các tên danh mục và tái sử dụng nó cho mọi series chia sẻ cùng các danh mục.

    String[] categories = new String[] { "Jan", "Feb", "Mar" };
    
  • Data Series - Gọi seriesColl.add() với tên series, mảng categories và một double[] các giá trị để thêm bao nhiêu series so sánh tùy bạn cần.

seriesColl.add("2021", categories, new double[] { 200, 220, 250 });

Các tùy chọn này cho phép bạn tùy chỉnh biểu đồ cho bất kỳ yêu cầu báo cáo nào đồng thời giữ cho mã ngắn gọn.

Chèn biểu đồ Scatter vào tài liệu Word bằng Java

Biểu đồ phân tán vẽ các cặp giá trị số X và Y thay vì các danh mục, điều này khiến chúng hữu ích cho việc trực quan hoá mối tương quan hoặc phân bố. ChartSeriesCollection cung cấp một phiên bản quá tải của add() đặc biệt cho mục đích này: thay vì một mảng danh mục, bạn truyền hai mảng double[], một cho các giá trị X và một cho các giá trị 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");
    }
}

Luồng tổng thể tương tự ví dụ biểu đồ cột: tạo một DocumentDocumentBuilder, chèn hình dạng biểu đồ bằng ChartType.SCATTER, lấy Chart từ hình dạng, và thêm một hoặc nhiều series. Vì biểu đồ scatter vẽ các cặp tọa độ X/Y, không có mảng categories riêng — mỗi điểm được định nghĩa bằng các mục tương ứng trong các mảng giá trị X và Y. Lưu bằng doc.save() sau khi đã thêm tất cả các series.

Kết luận

Nhúng dữ liệu trực quan trực tiếp vào các tệp DOCX là một cách mạnh mẽ để nâng cao các báo cáo tự động. Với Conholdate.Total for Java, bạn có thể tạo biểu đồ trong tài liệu Word bằng Java chỉ trong vài dòng mã — bao gồm biểu đồ cột, thanh, đường, bánh và phân tán — tùy chỉnh danh mục và chuỗi, và tạo ra các tài liệu chuyên nghiệp trên phía máy chủ. Hãy nhớ lấy giấy phép phù hợp cho việc sử dụng trong môi trường sản xuất; giấy phép tạm thời có sẵn trên trang giấy phép tạm thời, và chi tiết giá đầy đủ có thể xem trên trang giá. Bắt đầu tích hợp việc tạo biểu đồ ngay hôm nay và cung cấp cho người dùng của bạn các tài liệu dựa trên dữ liệu nổi bật.

Câu hỏi thường gặp

  • Làm thế nào tôi có thể tạo Biểu đồ trong tài liệu Word bằng Java với Conholdate.Total? Gọi insertChart trên một DocumentBuilder với ChartType mong muốn, lấy Chart từ Shape được trả về, xóa series mặc định, và thêm các danh mục và dữ liệu của bạn bằng seriesColl.add(), sau đó lưu tài liệu. Mã đầy đủ được hiển thị trong ví dụ ở trên.

  • Các loại biểu đồ nào được hỗ trợ? SDK hỗ trợ các loại biểu đồ cột, thanh, đường, tròn, phân tán và nhiều loại biểu đồ tiêu chuẩn khác thông qua enum ChartType. Thay đổi giá trị enum được truyền vào insertChart để chuyển đổi loại biểu đồ.

  • Biểu đồ phân tán khác gì so với biểu đồ cột hoặc thanh? Biểu đồ phân tán vẽ các cặp giá trị số X và Y thay vì các danh mục có tên, vì vậy bạn sử dụng phương thức add(name, xValues, yValues) của ChartSeriesCollection thay vì truyền một mảng danh mục.

  • Tôi có cần thiết lập giấy phép cho việc tạo biểu đồ không? Có. Bạn có thể nhận giấy phép tạm thời từ trang giấy phép tạm thời. Đối với các dự án dài hạn, mua giấy phép đầy đủ qua trang giá.

  • SDK có tương thích với các bản dựng Maven và Gradle không? Chắc chắn. Thêm kho Maven của Conholdate và phụ thuộc conholdate-total vào tệp cấu hình build của bạn như được mô tả trong phần Setup, và thư viện hoạt động với cả Maven và Gradle.

Read More