1 个不稳定版本
0.1.2 | 2022年5月2日 |
---|
#23 in #sheet
11KB
165 行
serde_sheets
使用 serde
和 csv
直接从 Google Sheets 读取和写入结构体
实现 serde::Serialize
以写入,实现 serde::Deserialize
以读取。很简单!
动机
Google Sheets API 比较复杂,需要很多样板代码。读取和写入需要使用大量的 Vec<Vec<String>>
。我们使用 csv
包来自动创建这些有效负载并将它们转换回您的结构体
用法
serde_sheets 预期一个 Google 服务帐户 json 作为 SERVICE_ACCOUNT_JSON
可用
$ export SERVICE_ACCOUNT_JSON=$(cat my-service-account.json)
构建 Sheets
对象
let service_account = service_account_from_env().unwrap();
let mut sheets = get_sheets(service_account, Some("token_cache.json"))
.await
.unwrap();
写入对象
serde_sheets::write_page(&mut sheets, "some-document-id", "some-tab-name", &objects)
.await
.unwrap();
读取对象
let returned: Vec<ExampleObject> = serde_sheets::read_all(&mut sheets, DOCUMENT_ID, TAB_NAME)
.await
.unwrap();
查看 examples/example.rs
以获取完整示例。
$ cargo run --example example
许可证
许可协议为以下之一
- Apache License, Version 2.0, (LICENSE-APACHE 或 https://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 https://opensource.org/licenses/MIT)
任选其一。
贡献
除非您明确声明,否则任何有意提交以包含在作品中的贡献,根据 Apache-2.0 许可证定义,应按上述方式双许可,不附加任何额外条款或条件。
依赖项
~18–33MB
~578K SLoC