#sheet #write #read-write #google #serde #csv #structs

serde_sheets

使用 serde 和 csv 直接从 Google Sheets 读取和写入结构体

1 个不稳定版本

0.1.2 2022年5月2日

#23 in #sheet

MIT 许可证

11KB
165

serde_sheets

使用 serdecsv 直接从 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-2.0 许可证定义,应按上述方式双许可,不附加任何额外条款或条件。

依赖项

~18–33MB
~578K SLoC