document/README.md

1.9 KiB
Raw Permalink Blame History

document

极简、高效的 Go 办公文档处理桥梁,符合 @go 设计哲学。

核心设计

document 包将所有复杂的文档格式Excel, Word, PPT, PDF抽象为统一的 Document 接口。你只需要关心 数据载体 (JSON/Markdown),而不需要关心底层实现。

  • 结构化数据 (Excel) <-> JSON
  • 半结构化内容 (Word/PPT/PDF) -> Markdown

统一 API

import "apigo.cc/go/document"

// 1. 打开文档 (自动识别类型)
doc, _ := document.Open("data.xlsx")

// 2. 转换为通用载体
jsonStr := doc.ToJSON()    // 适合 Excel
mdStr := doc.ToMarkdown() // 适合 Word/PPT/PDF

// 3. 修改并保存 (Excel 支持数据回写)
if xls, ok := doc.(*document.Excel); ok {
    xls.SetData("Sheet1", newData, "A1", "")
}
doc.Save("updated.xlsx")

支持格式

格式 后缀 ToJSON 表现 ToMarkdown 表现 Save 行为
Excel .xlsx 返回第一个 Sheet 的对象数组 返回第一个 Sheet 的 MD 表格 保存为 Excel 文件
Word .docx 返回 {"metadata":..., "content":...} 返回提取的全文文本 保存为纯文本文件
PPT .pptx 返回 {"metadata":..., "content":...} 返回提取的全文文本 保存为纯文本文件
PDF .pdf 返回 {"metadata":..., "content":...} 返回提取的全文文本 保存为纯文本文件

快速示例

AI 友好型转换

// 一行代码将 PDF 转为 AI 易读的 Markdown
md, _ := document.Open("report.pdf").ToMarkdown()

// 一行代码将 Excel 转为结构化 JSON
json, _ := document.Open("sales.xlsx").ToJSON()

API 参考

顶级函数

  • Open(filename string, password ...string) (Document, error)
  • Create(ext string) (Document, error)

Document 接口

  • ToJSON() string
  • ToMarkdown() string
  • Save(filename ...string) error