58 lines
1.7 KiB
Markdown
58 lines
1.7 KiB
Markdown
# office
|
|
|
|
极简、高效的 Go Office 文档处理库,符合 `@go` 设计哲学。支持将 Office 文档与 JSON/Markdown 等通用格式无缝转换,作为 AI 时代的数据桥梁。
|
|
|
|
## 特性
|
|
|
|
- **统一 API**: 提供极简的 `Open`, `Save`, `ToJSON`, `ToMarkdown` 等操作。
|
|
- **载体转换**:
|
|
- **Excel <-> JSON**: 自动将表格映射为对象数组,支持双向转换。
|
|
- **Docx/Pptx/PDF -> Markdown**: 提取并转化为 AI 友好的 Markdown 格式。
|
|
- **纯 Go 实现**: 无 CGo 依赖,极致的跨平台与部署性能。
|
|
- **Excel 增强**: 自动处理工作表对齐,支持动态列扩展。
|
|
|
|
## 快速开始
|
|
|
|
### 安装
|
|
|
|
```bash
|
|
go get apigo.cc/go/office
|
|
```
|
|
|
|
### Excel <-> JSON (结构化数据载体)
|
|
|
|
```go
|
|
// 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 (内容载体)
|
|
|
|
```go
|
|
// 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)`: 提取纯文本。
|