DOCX Tables
/install docx-tables
docx-tables
Create Word documents with tables that work everywhere - Word, Google Docs, etc.
⚠️ THE 5 CRITICAL RULES
1. Dual-Width Sizing (MOST CRITICAL)
Set widths in TWO places - on table AND on each cell:
// Table level
new Table({
width: { size: 9360, type: WidthType.DXA },
columnWidths: [1872, 7488],
rows: [...]
})
// Cell level - EVERY cell needs width!
new TableCell({
width: { size: 1872, type: WidthType.DXA },
children: [...]
})
2. Use DXA Only, Never Percentages
Percentages break in Google Docs. Use DXA:
- 1 inch = 1440 DXA
- US Letter with 1" margins = 9360 DXA
// ❌ WRONG
width: { size: 100, type: WidthType.PERCENTAGE }
// ✅ CORRECT
width: { size: 9360, type: WidthType.DXA }
3. Use ShadingType.CLEAR
const { ShadingType } = require('docx');
// ❌ WRONG - black background!
shading: { type: ShadingType.SOLID, fill: "E0F2F1" }
// ✅ CORRECT
shading: { type: ShadingType.CLEAR, fill: "E0F2F1" }
4. Add Cell Padding
const cellMargins = { top: 80, bottom: 80, left: 120, right: 120 };
new TableCell({
margins: cellMargins,
children: [...]
})
5. Column Widths Must Sum Exactly
For 1" margins: 9360 DXA
columnWidths: [1872, 7488] // = 9360 ✓
columnWidths: [3120, 3120, 3120] // = 9360 ✓
Complete Working Example
const { Document, Packer, Paragraph, TextRun, Table, TableRow, TableCell,
WidthType, AlignmentType, BorderStyle, TableLayoutType, ShadingType } = require('docx');
const fs = require('fs');
const TOTAL_WIDTH = 9360;
const COL1 = 1872;
const COL2 = 7488;
const cellBorders = {
top: { style: BorderStyle.SINGLE, size: 1, color: "CCCCCC" },
bottom: { style: BorderStyle.SINGLE, size: 1, color: "CCCCCC" },
left: { style: BorderStyle.SINGLE, size: 1, color: "CCCCCC" },
right: { style: BorderStyle.SINGLE, size: 1, color: "CCCCCC" }
};
const cellMargins = { top: 80, bottom: 80, left: 120, right: 120 };
const doc = new Document({
sections: [{
properties: {
page: { margin: { top: 1440, right: 1440, bottom: 1440, left: 1440 } }
},
children: [
new Table({
layout: TableLayoutType.FIXED,
width: { size: TOTAL_WIDTH, type: WidthType.DXA },
columnWidths: [COL1, COL2],
rows: [
new TableRow({
children: [
new TableCell({
children: [new Paragraph({
children: [new TextRun({ text: "Header", bold: true, color: "FFFFFF" })],
alignment: AlignmentType.CENTER
})],
width: { size: TOTAL_WIDTH, type: WidthType.DXA },
columnSpan: 2,
shading: { type: ShadingType.CLEAR, fill: "1565C0" },
borders: cellBorders,
margins: cellMargins
})
]
}),
new TableRow({
children: [
new TableCell({
children: [new Paragraph("Col 1")],
width: { size: COL1, type: WidthType.DXA },
borders: cellBorders,
margins: cellMargins
}),
new TableCell({
children: [new Paragraph("Col 2")],
width: { size: COL2, type: WidthType.DXA },
borders: cellBorders,
margins: cellMargins
})
]
})
]
})
]
}]
});
Packer.toBuffer(doc).then(buffer => {
fs.writeFileSync('output.docx', buffer);
});
Column Width Cheat Sheet
For US Letter with 1" margins = 9360 DXA:
| Layout | Column Widths |
|---|---|
| 2 cols (20/80) | [1872, 7488] |
| 2 cols (25/75) | [2340, 7020] |
| 2 cols (equal) | [4680, 4680] |
| 3 cols (equal) | [3120, 3120, 3120] |
| 3 cols (25/25/50) | [2340, 2340, 4680] |
Troubleshooting
Tables narrow in Google Docs?
- Use
WidthType.DXA, not PERCENTAGE - Add
widthto EVERY TableCell
Cell backgrounds black?
- Use
ShadingType.CLEAR, not SOLID
Text touching borders?
- Add
margins: { top: 80, bottom: 80, left: 120, right: 120 }
Columns uneven?
- Verify column widths sum to exactly 9360
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install docx-tables - 安装完成后,直接呼叫该 Skill 的名称或使用
/docx-tables触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
DOCX Tables 是什么?
Create Word documents with properly formatted tables using docx npm library. Tables work consistently across Word and Google Docs. Use when creating DOCX fil... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 375 次。
如何安装 DOCX Tables?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install docx-tables」即可一键安装,无需额外配置。
DOCX Tables 是免费的吗?
是的,DOCX Tables 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
DOCX Tables 支持哪些平台?
DOCX Tables 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 DOCX Tables?
由 happytreees(@happytreees)开发并维护,当前版本 v2.0.0。