google-sheets - 如何使用 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 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();