子表格增强插件,支持从Excel复制数据粘贴到子表格

plugin-subtable-enhancement-2.3.0-beta.6.tgz.zip (39.3 KB)


PixPin_2026-09-15_10-12-17

@onetwosmall/plugin-subtable-enhancement

NocoBase 增强型子表格(行内编辑)字段组件。

简介

该插件为 NocoBase 现代(v2)客户端中的多对多(m2m)、一对多(o2m)与多对多中间表(mbm)关联字段提供增强型子表格字段组件。它在原生行内子表格的基础上,补充了行操作、Excel 粘贴、查找回填与客户端公式列等功能,便于直接在表单内维护整组明细行。

功能特性

  • 行号、逐行删除与批量删除:默认显示序号,鼠标悬停/聚焦序号时切换为该行的勾选框(已勾选的行保持勾选框可见)

  • 复制行:在当前行下方插入一条完全隔离的深拷贝副本(含 belongsTo 关联记录对象),复制时清除主键,保存时作为新记录创建;复制始终以单元格最新提交值为准,不会因旧数据把刚修改的内容覆盖掉

  • 新增/编辑差异化体验:新增(create)表单默认提供一行空行便于直接录入;编辑表单只按已存储的实际数据显示(不再出现多余的尾部空行)

  • Excel 粘贴:在任意单元格使用 Ctrl+V 粘贴制表符分隔的剪贴板内容;按字段类型转换(数字、百分比、日期、日期时间、时间、下拉选项、复选等),粘贴范围自动扩展表格,无法转换的单元格保留原文并提示

  • 关联字段(belongsTo m2o/obo)下拉列:粘贴显示文本时,按当前列配置的标题字段自动解析并选中对应记录(仅数字形式的文本回退按主键匹配);未匹配到的值保留原文并汇总提示,不影响其它已匹配成功的行

  • 查找回填列:所有可编辑列(含关联字段下拉列)都可配置;输入匹配值后回车(或点击放大镜选择),解析目标记录并回填映射列;粘贴的多个值按列批量解析,弹窗表头显示数据源设置的字段显示名称

  • 计算规则:数字类型列支持 math.js 公式并实时重算;配置界面按数据源设置的字段显示名称列出数字字段,点击即可插入对应的 {{字段名}}

  • 界面文案本地化(简体中文 / 英文)

安装

安装插件后,在 NocoBase 插件管理页面启用

列级设置

| 设置 | 说明 |

| — | — |

| 计算规则 | 为该列配置 math.js 公式并实时计算;仅数字类型的字段列可设置,配置时可按数据源设置的字段显示名称插入数字字段 |

| 查找回填 | 以本列的值到目标数据表匹配记录,并把该记录的其他字段回填到本行对应列;所有可编辑列(含关联字段 m2o/obo 下拉列)都可配置 |

原生列设置(列标题、列宽、固定位置、字段组件、标题字段等)继续生效。

工作流程

  1. 新增表单中子表格默认给出一行空行,可直接录入;编辑表单只展示已保存的行。需要更多行时点击「新增」追加。

  2. 点击「复制行」会在当前行下方插入副本。单元格值(含嵌套的 belongsTo 记录对象)均做深拷贝,副本与源行互不共享引用;操作前会先提交当前编辑的单元格,确保复制到的是刚输入的最新值。

  3. Excel 粘贴从被点击单元格读取剪贴板的行列内容:数字/日期/选项等按字段类型转换;粘贴到查找回填列时批量解析目标记录并回填映射列。

  4. 关联字段下拉列粘贴显示文本时,插件按该列当前配置的标题字段在目标表中匹配(仅数字形式的文本回退按主键匹配)。匹配失败的值保留原文并汇总提示,匹配成功的行仍正常填充,不受影响。

  5. 「计算规则」列在其引用列发生变化时自动重算;列设置中的公式编辑器按数据源设置的字段显示名称列出数字字段,点击即可在光标处插入 {{字段名}}。

说明

  • 本插件作用于 NocoBase 现代(v2)客户端运行时;旧版(v1)客户端不受影响。

  • 「查找回填」对所有可编辑列(含关联字段 m2o/obo 下拉列)可用;在这些下拉列上 Excel 粘贴显示文本来选择记录同样生效。

  • 关联 Excel 粘贴时只有未匹配的值会被提示(保留原文),其它行/列不受影响。

  • 公式使用 math.js 语法,示例:{{nastnum}} * {{budget_price}},以数据库字段名引用各列——公式编辑器会从“字段显示名称”下拉中插入对应的 {{字段名}}。

许可证

本项目采用双许可:AGPL-3.0 与商业授权。

商业授权(如闭源部署)请联系:moonship1011@gmail.com。

2 Likes

不错,这个插件很实用 :+1:

这个非常棒了,尤其希望官方能原生支持Excel粘贴到子表格 @hongboji