You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用docx.js实现Word表格单元格文本垂直旋转?

如何用docx.js实现Word表格单元格文本垂直显示?

你提到的textDirection属性确实不是用来旋转文本的——它控制的是文本的阅读方向(比如垂直排版的脚本语言),而非普通水平文本的旋转显示。下面给你两种可行的解决方案,对应Word里两种不同的垂直文本效果:

方案1:旋转文本实现垂直显示(适合英文/非垂直脚本)

如果只是想把普通水平文本旋转90度变成垂直排列,直接给段落添加textRotation属性即可。设置为270时,文本会从上到下垂直显示(若设为90则是从下到上):

import { TableRow, TableCell, Paragraph, TextRun, AlignmentType, VerticalAlign, HeightRule, convertMillimetersToTwip, WidthType } from "docx";
// ...
new TableCell({
    children: [
        new Paragraph({
            children: [
                new TextRun({
                    text: `Some text here`,
                    size: 28,
                })
            ],
            alignment: AlignmentType.CENTER,
            textRotation: 270, // 核心:将文本旋转270度实现垂直显示
        })
    ],
    width: {
        size: convertMillimetersToTwip(10),
        type: WidthType.DXA,
    },
    rowSpan: 16,
    verticalAlign: VerticalAlign.CENTER,
}),

方案2:使用垂直文本方向实现原生垂直排版(适合中文等垂直脚本)

如果需要的是Word里「文本方向」设置中的原生垂直排版(字符从上到下堆叠,无旋转),则需要将单元格的textDirection设为TOP_TO_BOTTOM_LEFT_TO_RIGHT:

import { TableRow, TableCell, Paragraph, TextRun, AlignmentType, VerticalAlign, TextDirection, HeightRule, convertMillimetersToTwip, WidthType } from "docx";
// ...
new TableCell({
    children: [
        new Paragraph({
            children: [
                new TextRun({
                    text: `这里是一些文本`,
                    size: 28,
                })
            ],
            alignment: AlignmentType.CENTER,
        })
    ],
    textDirection: TextDirection.TOP_TO_BOTTOM_LEFT_TO_RIGHT, // 核心:设置原生垂直文本方向
    width: {
        size: convertMillimetersToTwip(10),
        type: WidthType.DXA,
    },
    rowSpan: 16,
    verticalAlign: VerticalAlign.CENTER,
}),

两者的区别

  • 旋转文本:本质是把水平文本转90度,字符本身还是横向的,适合英文等非垂直脚本。
  • 原生垂直排版:字符是纵向排列的,符合中文、日文等垂直脚本的排版习惯,无旋转效果。

你之前使用的LEFT_TO_RIGHT_TOP_TO_BOTTOM是默认的水平阅读方向,所以没有产生垂直效果,替换成上述对应值即可解决问题。

内容的提问来源于stack exchange,提问作者Atip

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 16:53:19