document/README.md

73 lines
1.9 KiB
Markdown

# office
极简、高效的 Go Excel 处理库,基于 `excelize` 构建,符合 `@go` 设计哲学。
## 特性
- **统一 API**: 提供极简的 `Open`, `Save`, `Get`, `Set` 等操作。
- **自动对齐**: 自动处理工作表的创建和索引。
- **对象映射**: 支持将 `[]map[string]any` 直接写入 Excel 或从 Excel 读取。
- **高性能**: 尽量减少内存分配和冗余操作。
## 快速开始
### 安装
```bash
go get apigo.cc/go/office
```
### 基础用法
```go
import "apigo.cc/go/office"
// 创建并写入
xls := office.New()
table := [][]any{
{"Name", "Age"},
{"Alice", 25},
{"Bob", 30},
}
xls.Set("Sheet1", table, "A1", "")
xls.Save("example.xlsx")
// 读取
xls2, _ := office.Open("example.xlsx")
data, _ := xls2.Get("Sheet1", "A1", "")
```
### 对象列表操作
```go
data := []map[string]any{
{"Name": "Alice", "Age": 25},
{"Name": "Bob", "Age": 30},
}
xls.SetData("Users", data, "A1", "")
```
## API 参考
### 核心函数
- `New() *Excel`: 创建新的 Excel 对象。
- `Open(filename string, password ...string) (*Excel, error)`: 打开现有文件。
### Excel 方法
- `Save(filename ...string) error`: 保存文件。
- `Bytes() ([]byte, error)`: 获取字节切片。
- `Set(sheetName string, table [][]any, start, end string) error`: 写入二维数据。
- `Get(sheetName string, start, end string) ([][]any, error)`: 读取二维数据。
- `SetData(sheetName string, data []map[string]any, start, end string) error`: 写入对象列表。
- `GetData(sheetName string, start, end string) ([]map[string]any, error)`: 读取对象列表。
- `Sheets() []string`: 获取工作表列表。
- `RemoveSheet(sheetName string) error`: 删除工作表。
### 工具函数
- `MakeCellID(col, row int) string`: 生成单元格 ID (如 "A1")。
- `ParseCellID(cell string) (col, row int)`: 解析单元格 ID。
- `MakeColID(col int) string`: 生成列 ID (如 "A")。