76 lines
1.8 KiB
Markdown
76 lines
1.8 KiB
Markdown
# office
|
|
|
|
极简、高效的 Go Office 文档处理库,符合 `@go` 设计哲学。支持 Excel、Word (Docx)、PowerPoint (Pptx) 和 PDF 的解析与处理。
|
|
|
|
## 特性
|
|
|
|
- **统一 API**: 提供极简的 `Open`, `Save`, `Text` 等操作。
|
|
- **纯 Go 实现**: 无 CGo 依赖,跨平台支持。
|
|
- **解析与识别**: 支持从 Docx、Pptx 和 PDF 中提取纯文本内容。
|
|
- **Excel 增强**: 自动处理工作表对齐,支持对象列表 (`[]map`) 的直接读写。
|
|
|
|
## 快速开始
|
|
|
|
### 安装
|
|
|
|
```bash
|
|
go get apigo.cc/go/office
|
|
```
|
|
|
|
### Excel 处理
|
|
|
|
```go
|
|
// 写入数据
|
|
xls := office.New()
|
|
xls.Set("Sheet1", [][]any{{"Name", "Age"}, {"Alice", 25}}, "A1", "")
|
|
xls.Save("example.xlsx")
|
|
|
|
// 读取对象列表
|
|
xls2, _ := office.Open("example.xlsx")
|
|
data, _ := xls2.GetData("Sheet1", "A1", "")
|
|
```
|
|
|
|
### Word (Docx) 解析
|
|
|
|
```go
|
|
doc, _ := office.OpenDocx("contract.docx")
|
|
text, _ := doc.Text() // 提取全文文本
|
|
fmt.Println(text)
|
|
```
|
|
|
|
### PowerPoint (Pptx) 解析
|
|
|
|
```go
|
|
ppt, _ := office.OpenPptx("presentation.pptx")
|
|
text, _ := ppt.Text() // 提取幻灯片全文
|
|
```
|
|
|
|
### PDF 解析
|
|
|
|
```go
|
|
pdf, _ := office.OpenPDF("report.pdf")
|
|
text, _ := pdf.Text() // 提取 PDF 纯文本
|
|
info := pdf.Info() // 获取页数、作者等元数据
|
|
```
|
|
|
|
## API 参考
|
|
|
|
### Excel
|
|
- `New() *Excel`
|
|
- `Open(filename string, password ...string) (*Excel, error)`
|
|
- `Set(sheetName string, table [][]any, start, end string) error`
|
|
- `SetData(sheetName string, data []map[string]any, start, end string) error`
|
|
|
|
### Word (Docx)
|
|
- `OpenDocx(filename string) (*Docx, error)`
|
|
- `Text() (string, error)`
|
|
|
|
### PowerPoint (Pptx)
|
|
- `OpenPptx(filename string) (*Pptx, error)`
|
|
- `Text() (string, error)`
|
|
|
|
### PDF
|
|
- `OpenPDF(filename string) (*PDF, error)`
|
|
- `Text() (string, error)`
|
|
- `Info() map[string]any`
|