dsh-spreadjs-editor 当前支持什么:安装前需要了解的几件事

dsh-spreadjs-editor 能不能用在生产环境,除了看功能演示,还要看版本、文件和浏览器兼容边界。提前把这些确认掉,能少返工。

把边界讲清楚,团队才能定下验证范围、验收标准和后续支持,用户也能知道哪些文件适合直接丢进浏览器处理。

版本、文件范围和运行环境这几件事,这篇文章一次说清。

版本和依赖

项目 要求
插件版本 0.2.0(当前 npm 最新版)
Node.js >=20
DSH 自带右侧栏的最新 release 版本
依赖 无。插件使用 DSH 自带的右侧栏,不需要第三方侧边栏插件
内置表格引擎 SpreadJS 与 Designer,随插件版本一起更新

插件在 0.2.0 起改用 DSH 的文档系统接入,不再依赖第三方侧边栏插件。DSH 本身仍在快速迭代,所以这里不锁固定版本;遇到装不上或者行为异常时,先把 DSH 升到最新 release 再复现。

内置的 SpreadJS 与 Designer 同理,插件会持续跟进上游版本,装到哪一版就用哪一版,不单独声明引擎版本号。想确认插件版本,看 npm 页面;想确认当前实际运行的引擎版本,打开任意表格文件,Designer「设置」标签里的「关于」会显示。

需要精确锁定引擎版本的团队,应当在验收时记录下当时安装的插件版本,并在升级插件前重新跑一遍验收清单。按引擎的小版本号去对齐意义不大------插件升级时它就会变。

插件本身以预构建方式分发,安装时不执行 preinstall、install、postinstall 或 prepare 脚本。0.1.4 起发布打包改用 prepack,打包校验也会拒绝任何安装期钩子。需要通过安全审计的团队会比较在意这一点。

长期维护的项目建议锁定验证过的插件版本,升级时记下变更原因。别因为 npm 上出了新版本就直接更新生产环境。

支持哪些文件

插件当前注册并支持打开五种文件:

扩展名 导入方式 需要单独确认的部分
.xlsx ExcelIO 解析为工作簿 JSON Excel 特性覆盖度
.xlsm 同.xlsx,走 ExcelIO 宏不能保留或执行
.csv 按文本表格导入 编码、分隔符、是否含公式
.sjs SpreadJS 自有格式,原生打开 与旧版本 SpreadJS 的兼容性
.ssjson SpreadJS 自有 JSON 格式 与旧版本 SpreadJS 的兼容性

有两处要特别当心。

关于宏。 .xlsm 能作为工作簿格式导入,但这只解决了「能打开」,不等于宏能被保留或执行。业务流程依赖宏的话,需要单独验证或者换方案。

关于自有格式的版本兼容。 .sjs 和 .ssjson 是 SpreadJS 的自有格式。用本版本保存的文件,可能无法在更低版本的 SpreadJS 里打开。和旧系统交换文件时,保留原文件并确认兼容性,别用新版本覆盖唯一的副本。

请用项目里的真实文件测试,重点看多 Sheet、公式、样式、合并区域、筛选,以及保存后格式有没有保留。

按文件重要程度分组会更清楚:普通办公表格用来快速体验,关键业务模板用来验收,带特殊特性的文件用来边界测试。这三类不能共用同一条「支持」结论。

和 DSH 自带的表格预览是什么关系

DSH 自带一个只读的表格预览,覆盖 .xlsx、.xls、.csv 和 .tsv,用来看内容足够。

装上插件后,两套实现并存,由 DSH 的注册表按档位决定谁来渲染:默认档优先于内置档,插件停在默认档。所以 .xlsx、.xlsm、.csv、.sjs、.ssjson 由 SpreadJS 打开;.xls 和 .tsv 不在插件的支持清单里,继续走内置预览。

两者的定位不同:内置预览是只读的,用来查看;插件的实现带完整编辑和保存写回。流程只需要看一眼内容,不装插件也能看;要改文件并落盘,才需要插件。

写回文件时的边界

保存(Designer「文件」菜单里的「保存到工作区」)把改动写回你打开的那个文件。它有几条限制,值得在验收时逐条走一遍:

限制 表现
只能写会话工作区内 目标越出当前会话的工作区(含..逃逸)直接拒绝
单次保存有体积上限 默认 64MB,超出直接拒绝,不做截断
冲突会拒绝写入 文件在打开之后被外部改过,保存被拒绝并说明原因,不覆盖
载入完成前不能保存 工作簿还没读完时保存会拒绝,避免用空表覆盖原文件
局域网访问需要额外配置 通过非回环地址访问时,要把该地址加进 trustedHosts

最后一条在本地体验时不会遇到,部署到局域网环境才会。如果团队通过 http://192``.168.x.x:端口 这类地址访问 DSH,而保存一直失败,先去检查这项配置。

需要一份副本时,用 DSH 自己的文件下载。Designer 的「文件」菜单已经只保留保存一个动作。

浏览器和文件规模

浏览器版本、工作簿大小、公式数量、图片和样式复杂度都会影响体验。生产上线前应该用接近真实业务的数据量做性能测试。

性能测试不用一开始就追一个抽象的极限数字,更应该看用户能不能在可接受的时间内打开文件、完成编辑和保存。超大文件可以考虑分页、拆分模板,或者调整使用流程。

有件事要提醒:开发环境里能打开一个示例文件,不等于生产环境里所有业务文件都能直接用。

从旧版本升级

升级到 0.2.0 要处理两件事。

先升级 DSH。 插件现在使用 DSH 自带的右侧栏,DSH 版本太旧时插件不会正常工作。先把 DSH 升到最新 release 版本,再升级插件。

卸掉旧的侧边栏插件。 0.2.0 不再依赖任何第三方侧边栏插件,留着不会带来功能,反而多一个需要维护的组件。

从早于 0.1.2 的版本升级的团队还多一件:0.1.2 起插件已经内置 SpreadJS 和 Designer,不再依赖旧版的前置文件查看器插件。升级前要移除那个插件及其 profile patch,否则可能出现 DSH 启动失败或浏览器里编辑器加载不出来。具体包名见仓库 CHANGELOG。

升级后,界面上会有这些差异:

位置 之前 现在
Designer「保存」 弹框下载到本地 直接写回打开的文件
Designer「文件」菜单 新建、打开、导入、导出、打印、信息 只剩「保存到工作区」
面板底部状态栏 常驻,显示版本与状态 已移除,改为右下角浮层
查看版本 底部状态栏 「设置」标签里的「关于」
深色模式 工具栏变深,表格仍为白底 工具栏与表格一起切换

需要保留副本的场景,改用 DSH 自己的文件下载。

升完建议重新验证代表性文件、公式结果、格式保留、保存流程和目标浏览器。生产系统还要保留可回滚的插件版本。

怎么反馈问题

在 GitHub Issue 里提供版本、浏览器、文件类型、复现步骤和必要的最小样例,信息越清楚越容易定位。

文件包含敏感业务数据的话,先脱敏,或者只提供能复现问题的结构和步骤。问题反馈越接近最小可复现样例,越容易变成可验证的修复。

哪些项目可以直接开始

综合上面的边界,下面这些情况可以直接上手:

  • 以 .xlsx 为主、不依赖宏的报表与数据核对场景。
  • 需要人工检查 Agent 生成结果的 Agent 工作流。
  • 文件规模可控(建议先用真实文件确认加载时间)的内部工具。
  • 已经在用 DSH 处理文件类任务,想补上表格查看与编辑环节的团队。

下面这些要先做专项验证,不建议直接排进生产计划:依赖宏执行的流程、超大工作簿、大量使用自定义函数或特殊对象的模板、以及与旧版本 SpreadJS 双向交换自有格式文件的系统。

小结

能力边界不是发布后的附注,而是上线前的一部分。用真实文件和目标环境走完验证,才能判断插件适不适合你的系统。

把「不替代什么」和「仍需验证什么」写清楚,比笼统承诺「支持 Excel 文件」更经得起核对。

参考链接

相关推荐
三*一1 小时前
优化修整算法
前端·javascript·算法
weifont2 小时前
自动化抓取和上架商品:能不动手,就少动手
运维·前端·自动化
米柆3 小时前
HTML5 audio /video 完整事件监听模板
前端·html·html5
IT_陈寒3 小时前
Vite热更新失效?你可能也踩了这个坑
前端·人工智能·后端
程序员大阳4 小时前
副队长CSS教程(30)–CSS Grid 实战:实现复杂自适应表单布局
前端·css·自适应·grid·表单
Csvn4 小时前
微前端实现
前端
Chrischaan5 小时前
做 AI 塔罗小程序时,我为什么不让大模型自己抽牌:一次上线复盘
前端
骑着蜗牛撵大象3275 小时前
LangChain 工具调用从声明到闭环:给智能体接上真实的手脚
前端
数据掘金5 小时前
百度统计后台页面数据异常?从手动调用时机开始排查
前端