DOCX

Charts

Add bar, line, pie, area, and scatter charts to documents

Embed charts in documents using ChartCollection with chart type classes from @office-open/core.

Basic Bar Chart

import { Document, Packer, Paragraph, ChartCollection, BarChart } from "@office-open/docx";

const doc = new Document({
    sections: [
        {
            children: [
                new Paragraph({
                    children: [
                        new ChartCollection({
                            width: 500,
                            height: 300,
                            charts: [
                                new BarChart({
                                    categories: ["Q1", "Q2", "Q3", "Q4"],
                                    series: [{ name: "Sales", values: [10, 20, 15, 25] }],
                                }),
                            ],
                        }),
                    ],
                }),
            ],
        },
    ],
});

Multi-Series Chart

new BarChart({
    categories: ["Q1", "Q2", "Q3", "Q4"],
    series: [
        { name: "Product A", values: [10, 20, 15, 25] },
        { name: "Product B", values: [15, 10, 20, 30] },
    ],
});

Line Chart

import { LineChart } from "@office-open/docx";

new LineChart({
    categories: ["Jan", "Feb", "Mar", "Apr", "May"],
    series: [{ name: "Revenue", values: [100, 150, 200, 180, 250] }],
});

Pie Chart

import { PieChart } from "@office-open/docx";

new PieChart({
    categories: ["Desktop", "Mobile", "Tablet"],
    series: [{ name: "Traffic", values: [50, 35, 15] }],
});

Area Chart

import { AreaChart } from "@office-open/docx";

new AreaChart({
    categories: ["Q1", "Q2", "Q3", "Q4"],
    series: [{ name: "Revenue", values: [100, 200, 150, 250] }],
});

Scatter Chart

import { ScatterChart } from "@office-open/docx";

new ScatterChart({
    series: [
        {
            name: "Dataset 1",
            xValues: [1, 2, 3, 4, 5],
            yValues: [2, 4, 1, 5, 3],
        },
    ],
});
Copyright © 2026