diff --git a/README.md b/README.md index c6a0a58..7910716 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,120 @@ # feishu-table-helper -飞书表格助手,根据实体类注解映射创建,读,写操作飞书表格 \ No newline at end of file +飞书表格助手,根据实体类注解映射创建、读取、写入飞书表格。 + +## 项目简介 + +feishu-table-helper 是一个简化飞书表格操作的 Java 库。通过使用注解,开发者可以轻松地将 Java 实体类映射到飞书表格,实现表格的自动创建、数据读取和写入操作,大大简化了与飞书表格 API 的交互。 + +## 功能特性 + +- **注解驱动**: 使用 [@TableProperty](file:///D:/private/gitea/feishu-table-helper/src/main/java/cn/isliu/core/annotation/TableProperty.java#L15-L71) 注解将实体类字段映射到表格列 +- **自动创建表格**: 根据实体类结构自动创建飞书表格和设置表头 +- **数据读取**: 从飞书表格读取数据并映射到实体类对象 +- **数据写入**: 将实体类对象写入飞书表格,支持新增和更新操作 +- **灵活配置**: 支持自定义表格样式、单元格格式等 + +## 安装 + +### Maven + +```xml + + cn.isliu + feishu-table-helper + 0.0.1 + +``` + +### Gradle + +```gradle +implementation 'cn.isliu:feishu-table-helper:0.0.1' +``` + +## 快速开始 + +### 1. 配置飞书应用凭证 + +```java +// 初始化配置 +FsConfig.initConfig("your_app_id", "your_app_secret"); +``` + +### 2. 创建实体类 + +```java +public class Employee extends BaseEntity { + @TableProperty(value = "姓名", order = 1) + private String name; + + @TableProperty(value = "邮箱", order = 2) + private String email; + + @TableProperty(value = "部门", order = 3) + private String department; + + // getters and setters... +} +``` + +### 3. 创建表格 + +```java +// 根据实体类创建表格 +FsHelper.create("员工表", "your_spreadsheet_token", Employee.class); +``` + +### 4. 写入数据 + +```java +List employees = new ArrayList<>(); +Employee emp = new Employee(); +emp.name = "张三"; +emp.email = "zhangsan@company.com"; +emp.department = "技术部"; +employees.add(emp); + +FsHelper.write("your_sheet_id", "your_spreadsheet_token", employees); +``` + +### 5. 读取数据 + +```java +List employees = FsHelper.read("your_sheet_id", "your_spreadsheet_token", Employee.class); +employees.forEach(emp -> System.out.println(emp.name + " - " + emp.email)); +``` + +## 核心注解 + +### @TableProperty + +用于将实体类字段映射到表格列: + +- `value()`: 表格列名 +- `order()`: 字段排序顺序 +- `type()`: 字段类型(文本、单选、多选等) +- `enumClass()`: 枚举类(用于单选/多选类型) +- `fieldFormatClass()`: 字段格式化处理类 +- `optionsClass()`: 选项处理类 + +## 配置选项 + +通过 [FsConfig](file:///D:/private/gitea/feishu-table-helper/src/main/java/cn/isliu/core/config/FsConfig.java#L5-L55) 类可以配置以下选项: + +- `headLine`: 表头行号 +- `titleLine`: 标题行号 +- `isCover`: 是否覆盖写入 +- `CELL_TEXT`: 是否设置单元格为文本格式 +- `FORE_COLOR`: 前景色 +- `BACK_COLOR`: 背景色 + +## 依赖 + +- 飞书开放平台 SDK (oapi-sdk) v2.4.21 +- OkHttp v4.12.0 +- Gson v2.8.9 + +## 许可证 + +本项目采用 Apache License 2.0 许可证。详情请见 [LICENSE](LICENSE) 文件。 \ No newline at end of file