dsh-basic-office:DSH 办公文件读写插件

前言

DSH 原生的 read / write / edit 主要面向 UTF-8 文本,而 PDF、DOCX、XLSX、PPTX 这类办公文档通常是二进制格式,文本处理工具不能直接覆盖。

下面介绍 dsh-basic-office。它是一个 DSH 办公文件插件,提供一组 office_* 工具,用于在 DSH 会话中读取常见办公文档,并生成常见办公文件。

这是什么

dsh-basic-office 是一组用于 DSH 会话的办公文件读写工具。

仓库地址为:

https://github.com/pqkisvery666/dsh-basic-office

许可证为 MIT,要求 Node.js >=20

它主要解决两件事:

  1. 读取 PDF、DOCX、XLSX、PPTX 等常见二进制文档。
  2. 生成 DOCX、XLSX、PPTX、PDF、CSV 等常见办公文件。

核心功能

读取

插件提供以下读取工具:

  • office_read_pdf:提取 PDF 文本,支持 page_start / page_end 页范围与 max_chars 截断。
  • office_read_docx:提取 Word .docx 文本,包括标题、段落、表格文字。
  • office_read_xlsx:读取 .xlsx / .xls / .csv,按工作表返回制表符分隔的行;支持 sheet / range / max_rows
  • office_read_pptx:提取 PowerPoint .pptx 每页幻灯片的文字,包括表格文字。

生成

插件提供以下生成工具:

  • office_write_docx:生成 Word 文档,支持标题、heading1-3 / quote / 普通段落样式和带表头底色的表格。
  • office_write_xlsx:生成 Excel 工作簿,支持多工作表、字符串/数字/布尔/空单元格、自动列宽。
  • office_write_pptx:生成 PPT,支持 16:9 宽屏、标题/副标题/分级项目符号/表格。
  • office_write_pdf:生成 PDF,支持多页、标题/段落/项目符号/表格;非 ASCII 文本使用 Windows 系统字体。
  • office_write_csv:生成 CSV,支持可选表头、comma / tab / semicolon 分隔符、默认 UTF-8 BOM。

安装与启用

先执行下面的安装命令。该命令将插件安装到 web profile:

dsh plugin --profile web add https://codeload.github.com/pqkisvery666/dsh-basic-office/tar.gz/refs/heads/main

安装后重启 dsh web 服务,新工具对会话生效。

典型用法

安装并重启后,可以直接在会话中描述任务,例如:

  • 读一下 C:\path\报告.pdf 的前 10 页
  • 把这个表格生成 data.xlsxdata.csv
  • 把以下内容生成一份 周报.docx(带标题和表格)和一个 5 页的 汇报.pptx
  • 把这段总结输出成 总结.pdf

与原生行为的一致性

dsh-basic-office 在文件读写行为上沿用了 DSH 会话的既有策略:

  • 沙箱一致:生成文件受会话沙箱策略约束,越界会得到与原生相同的 [sandbox: ...] 拒绝提示。
  • workspace-write 下只能写入工作区与系统临时目录。
  • 支持 sandbox_permissions + justification 的一次性升级,需要用户批准。
  • 读前保护:未读过的已有文件不会被直接覆盖。
  • 路径解析:相对路径按会话工作区解析。
  • 观察事件:读取/生成都会发出 fs/observed

运行环境与依赖

运行环境要求 Node.js >=20

许可证为 MIT。

依赖包括:

docx
jszip
mammoth
pdfkit
pptxgenjs
unpdf
xlsx

@deepseek-ai/dsh-tools 为可选 peerDependency,版本为 ^0.1.0-rc.0

注意与限制

使用前需要留意以下限制:

  • 扫描版 PDF(纯图片无文字层)无法提取文本。
  • 老式二进制 .doc 不支持,请先另存为 .docx.xls 受支持。
  • 非 Windows 平台生成 PDF 时,如果没有 CJK 系统字体,中文无法渲染。
  • PPTX 读取不含图片/绘图中的文字。
  • 插件会在 dsh 会话中运行并读写文件,安装前建议检查源码与 MIT 许可证。

结尾

dsh-basic-office 的价值在于补齐 DSH 会话对常见办公二进制文档的读取和生成能力,同时沿用 DSH 的沙箱、观察和路径解析机制。

GitHub 仓库:

https://github.com/pqkisvery666/dsh-basic-office
羽毛球分组比赛记分
小程序二维码

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

Xiaoye