# @domternal/extension-table 中文文档

规范地址：https://npmcn.com/package/%40domternal/extension-table/

版本：1\.8\.1
npm 元数据更新时间：2026-11-08T11:30:12.678Z
中文译文更新时间：2026-11-14T07:28:48.088Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40domternal/extension-table
原文对照：https://npmcn.com/package/%40domternal/extension-table/?lang=original
项目主页：https://domternal.dev/
源码仓库：https://github.com/domternal/domternal

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：923 kB，16 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=22
- 运行依赖：0 个
- peer 依赖：@domternal/pm \>=1\.8\.0 \<2\.0\.0，@domternal/core \>=1\.8\.0 \<2\.0\.0
- 首次发布：2026-03-21T22:02:50.129Z
- 最新版本发布：2026-11-08T11:30:12.521Z
- 近 30 天下载量：2128（2026-10-13 至 2026-11-11，npm 官方下载统计）
- 已发布版本数：47（近 12 个月 47 个）

## 中文简介

Domternal 编辑器的表格扩展名

## 安装

```sh
npm install @domternal/extension-table
```

也可以使用：`pnpm add @domternal/extension-table`、`yarn add @domternal/extension-table`、`bun add @domternal/extension-table`

## README

# @ domternal/ extension- table( 扩展表)

[![Version](https://img.shields.io/npm/v/@domternal/extension-table.svg)](https://www.npmjs.com/package/@domternal/extension-table) [![MIT License](https://img.shields.io/badge/License-MIT-blue.svg)](https://github.com/domternal/domternal/blob/main/LICENSE)

可编辑表格 [永远](https://domternal.dev/),在 `prosemirror-tables`。包括单元格合并/分割、列调整大小、页眉行和 列、单元格样式、选择和键盘导航。 内置表格 视图提供行/列控件和一个单元格工具栏.

[文档](https://domternal.dev/v1/nodes/table/) • 妇女 [实例](https://domternal.dev/examples)

## 安装

软件包宣布Node.js 22或后作工具.

```bash
pnpm add @domternal/core @domternal/pm @domternal/extension-table @domternal/theme
```

核心和 pm 是同龄人, 范围 `>=1.8.0 <2.0.0`。为所有人使用1.8.1版 安装了 DOMTERNAL 免费软件包。 示例使用表格的可选主题 布局和用户界面;您可以自行提供样式.

## 快开始

```html
<div id="editor" class="dm-editor"></div>
```

```ts
import { Editor, StarterKit } from '@domternal/core';
import { Table } from '@domternal/extension-table';
import '@domternal/theme';

const editor = new Editor({
  element: document.getElementById('editor')!,
  extensions: [StarterKit, Table],
});

editor.commands.insertTable({ rows: 3, cols: 3, withHeaderRow: true });
```

`Table` 登记册 `TableRow`, (中文(简体) ), `TableCell`, (中文(简体) ), `TableHeader` 财务报告和审定财务报表 `Gapcursor` 自动。 您不需要单独添加这些内容 。 打电话 `editor.destroy()` 当删除编辑器时.

## 配置调整大小和用户界面

替换 `Table` 在带配置实例的扩展数组中:

```ts
Table.configure({
  resizeBehavior: 'neighbor',
  constrainToContainer: true,
  cellMinWidth: 25,
  defaultCellMinWidth: 100,
});
```

| 选项 | 默认 | 目的 |
| --- | --- | --- |
| `resizeBehavior` | `'neighbor'` | 以相邻的柱子缩放; `'independent'` 长出桌子 `'redistribute'` 重新分配宽度. |
| `constrainToContainer` | `true` | 将成长限制在可用空间,当最小宽度不能适应时,横向滚动. |
| `cellMinWidth` | `25` | 拖曳时最小列宽, 以像素计 . |
| `defaultCellMinWidth` | `100` | 无明显宽度的列的宽地层,以像素为单位. |
| `allowTableNodeSelection` | `false` | 允许选择整个表格为节点 . |
| `View` | `TableView` | 替换内置节点视图,或使用 `null` 以省略其手柄和单元格工具栏. |

禁用内置视图不会禁用列反射插件 . 使用空格添加一列保留已有自定义宽度 在从附近各栏借款之前, 见 [调整行为大小](https://domternal.dev/v1/nodes/table/#resize-behaviors) 财务报告和审定财务报表 [集装箱限制](https://domternal.dev/v1/nodes/table/#container-constraint)。 。 。 .

## 与表格有关的工作

命令使用当前单元格或单元格选择 :

```ts
editor.commands.addRowAfter();
editor.commands.addColumnAfter();
editor.commands.setCellAttribute('background', '#fff3cd');
editor.commands.setCellAttribute('textAlign', 'center');
```

| 任务 | 图标 |
| --- | --- |
| 创建或删除表格 | `insertTable`, (中文(简体) ), `deleteTable` |
| 更改行或列 | `addRowBefore`, (中文(简体) ), `addRowAfter`, (中文(简体) ), `deleteRow`, (中文(简体) ), `addColumnBefore`, (中文(简体) ), `addColumnAfter`, (中文(简体) ), `deleteColumn` |
| 合并或分割选定的单元格 | `mergeCells`, (中文(简体) ), `splitCell` |
| 切换信头 | `toggleHeaderRow`, (中文(简体) ), `toggleHeaderColumn`, (中文(简体) ), `toggleHeaderCell` |
| 选择或导航单元格 | `setCellSelection`, (中文(简体) ), `goToNextCell`, (中文(简体) ), `goToPreviousCell` |
| 样式单元格 | `setCellAttribute` |

合并需要兼容的单元格选择。 返回图标 `false` 当 当前选择或表格不支持操作。 使用 `editor.can()` 当启用自己的控制。 见 [命令引用](https://domternal.dev/v1/nodes/table/#commands) 用于参数、单元格位置和修复助手.

标签移动到下一个单元格并可以添加一行; Shift+Tab 向后移动。 内部 列表和任务项目,列表缩进优先。 选择所有单元格和 按后空格键,否则删除表格.

## 可选的表格布局设置

免费 1. 6.0 添加选入 `TableLayout`添加到旁边 `Table` 以存储明确的行 高度、单元格粘贴/边框和分页偏好。 没有它,现有的 表格计划不变. 在存储这些属性之前, 启用它 .

```ts
import { Table, TableLayout } from '@domternal/extension-table';

const extensions = [StarterKit, Table, TableLayout];

editor.commands.setTableLayout({ breakBefore: 'page' });
editor.commands.setTableRowLayout({ height: 48, heightRule: 'atLeast', allowSplit: false });
editor.commands.setTableCellLayout({
  padding: { top: 8, right: 12, bottom: 8, left: 12 },
  borders: { bottom: { width: 1, style: 'solid', color: '#445566' } },
});
```

命令在当前表格、行或单元格上行事。 通过 `null` 清除 相应的设置。 他们参与编辑器交易并撤消 扩展名不添加设置面板. `editor.can()` 检查可用性.

JSON 仓库 `tableLayout`, (中文(简体) ), `rowLayout` 财务报告和审定财务报表 `cellLayout`。尺寸是 CSS 像素 : 行高为1–4,096,每侧铺有0–256个,边宽为0–16个. `heightRule` 需要一个高度。 接受边框 `solid`, (中文(简体) ), `dashed`, (中文(简体) ), `dotted`, (中文(简体) ), `double` 或者说 `none` 和明确六位数的六进制颜色。 HTML 解析也接受 绝对 `px`, (中文(简体) ), `pt`, (中文(简体) ), `mm`, (中文(简体) ), `cm` 财务报告和审定财务报表 `in` 维度;百分比, `calc()` 财务报告和审定财务报表 `var()` 未解决。 浏览器将行高作为最小值,即使 存储的单词首选项是 `exact`。浏览器可以覆盖请求的打印 换行以适应可用的页面.

仅读 `getNodeTableLayout`, (中文(简体) ), `getNodeTableRowLayout` 财务报告和审定财务报表 `getNodeTableCellLayout` 帮助者返回已验证的设置仅用于节点 选入计划.

单独的Pro 导出软件包支持这些设置中的一个文件子集, 一、导 言 [导出指南](https://domternal.dev/v1/pro/export/#table-layout-settings)。 。 。 . 该实施使用本地Word设置并设定了PDF近似值. 与 `allowSplit: false`,它的 PDF 输出只会在它之后将一行相接 符合新页面及其重复的标题和最终字体。 体积过大或 未可测量行仍可分出警告,保留其内容.

## 内容和粘贴

单元格粘贴保留了表格结构,并在需要时扩展目的地。 添加 [粘贴清除](https://github.com/domternal/domternal/tree/main/packages/extension-paste-cleanup) 明确用于办公室的 HTML 正常化;它未列入表格.

HTML 和 JSON 装入绑定完成时间跨度为 1 到 1000 , 并报告未支持的 JSON 通过内容诊断。 严格的计划验证需要正数 安全整数。 共享文件可能仍然包含不支持的存储跨度; 在明确进行迁移修复之前,有些表格操作仍然无法进行 他们。 渲染不会默地重写共享内容. 见 [间距验证](https://domternal.dev/v1/nodes/table/#span-validation) 编辑 [核心移徙指南](https://github.com/domternal/domternal/blob/main/packages/core/docs/content.md) 在迁移现有合作文件之前.

在远程间距变得不支持之前所做的单元格选择会回到 文本守护而不重建表格的映射或删除其单元格。 明确 `fixTables` 命令还拒绝仍然包含不支持的跨度的文档. 使这些跨度正常化可以恢复普通的表格命令和单元格选择.

列宽为 `null` 或最多为1,000个有限、非负数的数组 不超过 `Number.MAX_SAFE_INTEGER`零表示自动宽; 分数 CSS 宽度仍然支持 。 无效的 JSON 宽度变为 `null` 带有 `unsupported-table-width` 诊断。 HTML 解析无效的宽度,以及 使存储的无效宽度使用自动缩放而不重写共享 内容. `normalizeContentAttributes({ codes: ['unsupported-table-width'] })` 在应用程序选择迁移时进行明确修复.

PasteCleanup应用自己的结构预算,拒绝超过1 000个周期; 与表的普通 HTML 解析不同,它覆盖了跨度。 单元格颜色 和对齐值也遵循了Core的风格政策.

## 更多文档

-   [表格指南](https://domternal.dev/v1/nodes/table/): schema,属性,单元格粘贴,造型和完整选项.
-   [出口](https://domternal.dev/v1/nodes/table/#exports)数字 : `TableView`, (中文(简体) ), `createTable`, (中文(简体) ), `CellSelection`, (中文(简体) ), `TableMap` 和相关的助手.
-   [本地化](https://domternal.dev/v1/guides/i18n/)数字 : `tableMessages` 和可选 `@domternal/extension-table/locales/de` 目录.

## 许可证

[麻省理工学院](https://github.com/domternal/domternal/blob/main/LICENSE)适应 prosemir-tables 代码由软件包覆盖 [第三方通知](https://github.com/domternal/domternal/blob/main/packages/extension-table/THIRD-PARTY-LICENSES.md)。 。 。 .

## 常见问题

### @domternal/extension-table 是什么？

Domternal 编辑器的表格扩展名

### 如何安装 @domternal/extension-table？

在项目目录运行 npm install @domternal/extension-table，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：@domternal/pm（\>=1\.8\.0 \<2\.0\.0）、@domternal/core（\>=1\.8\.0 \<2\.0\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @domternal/extension-table 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @domternal/extension-table 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @domternal/extension-table 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=22。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @domternal/extension-table 可以商用吗？

@domternal/extension-table 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @domternal/extension-table 的下载量有多少？

根据 npm 官方下载统计，@domternal/extension-table 在 2026/10/13 – 2026/11/11 这 30 天内被下载 2,128 次，日均约 71 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @domternal/extension-table 还在维护吗？

最新版本 1\.8\.1 发布于 2026/11/08（5 天前）；至今共发布 47 个版本，其中过去 12 个月发布了 47 个；首次发布于 2026/03/22。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

