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.xlsx 和 data.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
羽毛球分组比赛记分
小程序二维码

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

小夜