dsh-office-preview:在 DSH 侧边栏本地预览 Word 与 Excel

前言

DeepSeek Harness(DSH)右侧栏文档面板默认可预览常见文本类文件。工作区里若打开 .docx 或 .xlsx,会落到纯文本渲染器,界面提示「非文本文件,暂时无法预览」。要对照文档内容写提示词或核对表格,只能切到系统里的 Office/WPS,或另开浏览器上传——与「在 Harness 里完成上下文工作」的路径不一致。

dsh-office-preview 是维护者 JohnGD 发布的客户端类插件:在浏览器内解析 OOXML,只读展示 Word 与 Excel,不安装 Office、不访问外部服务。下面介绍它的能力边界、安装方式与使用时的注意点。

这是什么

dsh-office-preview 面向 DeepSeek Harness 右侧栏文档面板,接管 Word(.docx 等)与 Excel(.xlsx 等)的预览渲染。

未安装本插件时,上述 Office Open XML 文件仍走官方纯文本回退;安装并在 Harness 中启用后,在侧边栏点开对应文件即可看到结构化预览。

核心功能

支持的扩展名与渲染内容

扩展名 渲染内容
.docx .docm .dotx .dotm 标题层级;段落(缩进与项目符号);加粗 / 斜体 / 下划线;表格(含嵌套表格)
.xlsx .xlsm .xltx .xltm 工作表分页签;行列号表头;合并单元格;列宽;数字与日期格式;公式的缓存值

旧二进制格式(.doc、.xls)不由本插件声明,仍使用纯文本回退;.pptx 目前不在范围内。

实现要点(客户端、零外部依赖)

插件在官方扩展点 ctx.documentPreviews 与插槽 sidebar.right.tab.document 上注册两个渲染器,不 patch Harness 源码,不调用外部服务;除 react 外无额外运行时依赖。

OOXML 在浏览器内处理:lib/client.js 内置 ZIP 中央目录读取(通过 DecompressionStream 解 raw-DEFLATE)与小型 XML 读取器,未引入 JSZip、SheetJS 或 mammoth。lib/index.js 仅用于让 Cordis loader 加载客户端入口,可见逻辑均在客户端半。

Harness 兼容性在 package.json 中声明为 dsh >= 0.1.1-rc.2,并列出若干已标注 compatible 的发行版本;运行环境要求 Node >= 20。

安装与启用

插件以当前 DSH 进程权限运行;安装前建议阅读仓库源码与 MIT 许可证,确认符合你的安全策略。

从插件市场安装(推荐)

在 Harness 中:设置 → 插件市场 → 发现,搜索 dsh-office-preview,安装后按提示重启 Harness。

用预构建包安装(不用市场、不用 npm)

本包未发布到 npm;官方 README 给出的命令如下:

dsh plugin --profile web add https://github.com/JohnGD/dsh-office-preview/releases/latest/download/dsh-office-preview.tgz

离线手动安装

Windows 使用 install.ps1,macOS 与 Linux 使用 install.sh。以 Windows 为例:

powershell -ExecutionPolicy Bypass -File install.ps1

脚本会做三件事:

  1. 将包复制到 <home>\plugins\dsh-office-preview;
  2. 建立 <home>\profiles\node_modules\dsh-office-preview 联结指向该目录(Cordis loader 解析插件条目名的回退根);
  3. 在 profile 补丁层 <home>\profiles\web\cordis.patch.yml 追加一条 insert 行,修改前自动备份。

补丁层启用 patchReload: live 监听,通常刷新页面(Ctrl+R)即可生效;若无变化,重启 DSH Desktop。

两种安装形态不要同时启用:profile 依赖(dsh plugin add 或 link:)与 install.ps1 / install.sh 路径若重复挂载同一插件 id,会冲突。

安装后可在 Harness → 设置 → 插件清单 看到 dsh-office-preview 与内置插件并列。仅当作为 profile 依赖安装时,插件市场 → 已安装 才会列出,并标记为「本地开发」。

典型用法

无需单独命令行「打开预览」:在 DSH 工作区选中或打开已支持的文件,右侧栏文档面板会自动走本插件注册的渲染器。

维护者在仓库提供自检脚本(需 Node >= 20),可在克隆或下载源码后于插件目录执行,验证解析、渲染与客户端注册契约(README 示例路径面向 Windows DSH Desktop 自带的 node):

$node = "$env:APPDATA\dsh-desktop\harness\.desktop-bin\node.cmd"
& $node test\parse.mjs  samples\sample.xlsx samples\sample.docx
& $node test\render.mjs samples\sample.xlsx samples\sample.docx
& $node test\plugin.mjs

成功时各脚本输出 ALL CHECKS PASSED;samples/ 内含示例工作簿与文档,不依赖外部文件。

适用场景与限制

适合:在 Harness 内只读查看 .docx / .xlsx 正文与表格结构;离线或不便安装 Office 的环境;希望预览数据不出本机、不经第三方 SaaS 的场景。

边界与限制(来自官方 README):

  • 只读:预览不会写回文档。
  • 图片、批注、修订痕迹、图表、宏不渲染;相关文字内容仍会显示。
  • 单文件读取上限受 Harness workspaceFiles.readAll 约束,默认 32 MiB。
  • 大表格最多渲染 4000 行 × 160 列,超出部分会提示。

卸载:若用 install.ps1 安装,可执行 uninstall.ps1(加 -RemoveFiles 可删除已复制文件);若作为 profile 依赖安装,在 市场 → 已安装 → 卸载 移除。

结尾

dsh-office-preview 把 Word / Excel 的 OOXML 预览收进 DSH 右侧栏文档面板:浏览器内解析、无 Office、无联网,与 DSH「一切皆插件」的扩展方式一致。需要能力细节或自行审计实现时,以 GitHub 仓库 README 为准。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜