首页 > 解决方案 > 如何使用 google_sheets4 板条箱构建正确的 values_update 调用?

问题描述

目前,为了让一个基本示例正常工作,我有这个我试图用值“1”更新单元格 A1:A4。

let mut req = ValueRange::default();
req.values = Some(vec![ vec![ String::from("1"), String::from("1"), String::from("1"), String::from("1") ] ]);
req.range = Some(String::from("A1:A4"));

let result = hub.spreadsheets().values_update(req, SPREADSHEET_ID, "A1:A4")
         .value_input_option("USER_ENTERED")
         .doit();

这会以错误的请求响应。我已经验证我的身份验证有效并且我能够像这样编辑电子表格

let mut req = sheets4::ClearValuesRequest::default();
let result = hub.spreadsheets().values_clear(req, SPREADSHEET_ID, "A1:B2").doit();

这将按预期清除 A1:B2。

理想情况下,我希望有这样的功能

batch_update(&[1,2,3,4, (etc)], &["A1", "B2", "F3", "G42", (etc)]);

这会将单元格 A1、B2、F3 .. 设置为 1、2、3...。除了基本用法之外,我对谷歌电子表格和一般电子表格完全不熟悉。

标签: google-sheetsrustcrate

解决方案


我应该阅读官方的 google sheet api 文档而不是 crate 文档。在官方文档中,我发现这个https://developers.google.com/sheets/api/samples/writing帮助我获得了一个基本示例,如下所示:

let mut req = sheets4::ValueRange::default();
req.range = Some(String::from("A1:D6"));
req.major_dimension = Some(String::from("ROWS"));
req.values = Some(vec![
    vec!["Item".to_owned(), "Cost".to_owned(), "Stocked".to_owned(), "Ship Date".to_owned()],
    vec!["Wheel".to_owned(), "$20.50".to_owned(), "4".to_owned(), "3/1/2016".to_owned()],
    vec!["Wheel".to_owned(), "$20.50".to_owned(), "4".to_owned(), "3/1/2016".to_owned()],
    vec!["Wheel".to_owned(), "$20.50".to_owned(), "4".to_owned(), "3/1/2016".to_owned()],
    vec!["Wheel".to_owned(), "$20.50".to_owned(), "4".to_owned(), "3/1/2016".to_owned()],
    vec!["Wheel".to_owned(), "$20.50".to_owned(), "=SUM(C2:C5)".to_owned(), "3/1/2016".to_owned()],
]);

let result = hub.spreadsheets().values_update(req, SPREADSHEET_ID, "A1:D6")
    .value_input_option("USER_ENTERED")
    .doit();

推荐阅读