office

极简、高效的 Go Office 文档处理库,符合 @go 设计哲学。支持将 Office 文档与 JSON/Markdown 等通用格式无缝转换,作为 AI 时代的数据桥梁。

特性

  • 统一 API: 提供极简的 Open, Save, ToJSON, ToMarkdown 等操作。
  • 载体转换:
    • Excel <-> JSON: 自动将表格映射为对象数组,支持双向转换。
    • Docx/Pptx/PDF -> Markdown: 提取并转化为 AI 友好的 Markdown 格式。
  • 纯 Go 实现: 无 CGo 依赖,极致的跨平台与部署性能。
  • Excel 增强: 自动处理工作表对齐,支持动态列扩展。

快速开始

安装

go get apigo.cc/go/office

Excel <-> JSON (结构化数据载体)

// Excel 转 JSON
xls, _ := office.Open("data.xlsx")
jsonStr, _ := xls.ToJSON("Sheet1", "A1", "")

// JSON 转 Excel
newXls := office.New()
newXls.FromJSON("Sheet1", jsonStr, "A1", "")
newXls.Save("restored.xlsx")

Docx/Pptx/PDF -> Markdown (内容载体)

// Word 转 Markdown
doc, _ := office.OpenDocx("contract.docx")
md, _ := doc.ToMarkdown()

// PDF 转 Markdown
pdf, _ := office.OpenPDF("report.pdf")
md, _ := pdf.ToMarkdown()

API 参考

Excel (JSON 转换)

  • ToJSON(sheetName string, start, end string) (string, error)
  • FromJSON(sheetName string, jsonStr string, start, end string) error
  • GetData(sheetName string, start, end string) ([]map[string]any, error)
  • SetData(sheetName string, data []map[string]any, start, end string) error

Word/PPT/PDF (Markdown 提取)

  • ToMarkdown() (string, error): 将文档内容提取为 Markdown 格式字符串。
  • Text() (string, error): 提取纯文本。
Description
No description provided
Readme 104 KiB
Languages
Go 100%