DOCX

文本与段落

使用段落、文本片段、格式化、对齐、间距、缩进、列表和制表位

文档由 Paragraph 元素构成,每个段落包含带有独立格式的 TextRun 子元素。

Paragraph

import { Paragraph, TextRun } from "@office-open/docx";

// 简单段落
new Paragraph({
    children: [new TextRun("Plain text paragraph.")],
});

// 标题
new Paragraph({
    heading: "Heading1",
    children: [new TextRun("Chapter Title")],
});

对齐与间距

new Paragraph({
    alignment: "center",
    spacing: { before: 200, after: 200, line: 360 },
    indent: { left: 720 },
    children: [new TextRun("Centered paragraph with spacing and indent.")],
});

边框

new Paragraph({
    border: {
        bottom: { style: "single", size: 6, color: "999999" },
    },
    children: [new TextRun("Paragraph with a bottom border.")],
});

TextRun

每个 TextRun 可以有独立的格式设置:

new Paragraph({
    children: [
        new TextRun({ text: "Bold", bold: true }),
        new TextRun({ text: ", Italic", italics: true }),
        new TextRun({ text: ", Underline", underline: { type: "single" } }),
        new TextRun({ text: ", Strikethrough", strike: true }),
        new TextRun({ text: ", 24pt", size: 48 }),
        new TextRun({ text: ", Colored", color: "FF0000" }),
        new TextRun({ text: ", Courier", font: "Courier New" }),
        new TextRun({ text: ", Super", superScript: true }),
        new TextRun({ text: ", Sub", subScript: true }),
    ],
});

编号列表和项目符号列表

使用 Numbering 定义列表样式,然后在段落中引用:

import { Numbering, Paragraph, TextRun, Document } from "@office-open/docx";

const doc = new Document({
    numbering: {
        config: [
            {
                reference: "my-numbering",
                levels: [
                    { level: 0, format: "decimal", text: "%1.", alignment: "start" },
                    { level: 1, format: "lowerLetter", text: "%2)", alignment: "start" },
                ],
            },
        ],
    },
    sections: [
        {
            children: [
                new Paragraph({
                    numbering: { reference: "my-numbering", level: 0 },
                    children: [new TextRun("First item")],
                }),
                new Paragraph({
                    numbering: { reference: "my-numbering", level: 0 },
                    children: [new TextRun("Second item")],
                }),
                new Paragraph({
                    numbering: { reference: "my-numbering", level: 1 },
                    children: [new TextRun("Nested sub-item")],
                }),
            ],
        },
    ],
});

对于项目符号列表,在级别配置中使用 format: "bullet"

制表位

import { Paragraph, TextRun, Tab, TabStopType, TabStopPosition } from "@office-open/docx";

new Paragraph({
    tabStops: [{ type: TabStopType.LEFT, position: TabStopPosition.MAX }],
    children: [new TextRun("Name"), new Tab(), new TextRun("John Doe")],
});

分页符

在段落之间插入分页符:

new Paragraph({
    pageBreakBefore: true,
    children: [new TextRun("新页开始")],
});

Paragraph 选项参考

选项类型说明
alignment"left" | "center" | "right" | "distribute"水平对齐
spacing.beforenumber段前间距(TWIP)
spacing.afternumber段后间距(TWIP)
spacing.linenumber行距(1/240 行)
indent.leftnumber左缩进(TWIP)
indent.rightnumber右缩进(TWIP)
indent.firstLinenumber首行缩进(TWIP)
indent.hangingnumber悬挂缩进(TWIP)
headingstring标题级别("Heading1""Heading6"
borderobject段落边框
pageBreakBeforeboolean强制在此段落前分页
numberingobject列表引用和级别
tabStopsarray制表位定义
stylestring命名样式引用

TextRun 选项参考

选项类型说明
textstring文本内容
boldboolean粗体
italicsboolean斜体
underlineobject下划线样式和类型
strikeboolean删除线
doubleStrikeboolean双删除线
subScriptboolean下标
superScriptboolean上标
sizenumber字号(半磅单位,24 = 12pt)
colorstring十六进制颜色(不带 #
fontstring字体族名称
highlightstring高亮颜色
shadingobject背景底纹
stylestring命名字符样式引用
breaknumber换行次数
characterSpacingnumber字符间距(TWIP)
Copyright © 2026