我正在从我指定的范围中获取值。但是有没有办法计算这些值? 我正在使用这种方法从工作表中获取值。
spreadsheetId :=""
range2 :=""
valueRenderOption := "FORMATTED_VALUE"
resp, err :=sheetsService.Spreadsheets.Values.Get(spreadsheetId, range2).ValueRenderOption(valueRenderOption).Do()
if err != nil {
log.Fatal(err)
}
答案 0 :(得分:1)
sheetsService.Spreadsheets.Values.Get(spreadsheetId, range2).ValueRenderOption(valueRenderOption).Do()
,当A1:C1
给range2
时,返回值为{"majorDimension":"ROWS","range":"A1:C1","values":[["###","###","###"]]}
。在这种情况下,resp.Values
是二维数组。这样,len(resp.Values)
返回 1
。我认为这就是您出现问题的原因。当你想从sheetsService.Spreadsheets.Values.Get(spreadsheetId, range2).ValueRenderOption(valueRenderOption).Do()
中检索单元格总数时,下面的修改如何?
resp, err := sheetsService.Spreadsheets.Values.Get(spreadsheetId, range2).ValueRenderOption(valueRenderOption).Do()
if err != nil {
log.Fatal(err)
}
count := 0
for _, e := range resp.Values {
count += len(e)
}
fmt.Println(count)
A1:C1
用于 range2
时,返回 3
。例如,当您要检索不为空的单元格总数时,也可以使用以下脚本。
resp, err := sheetsService.Spreadsheets.Values.Get(spreadsheetId, range2).ValueRenderOption(valueRenderOption).Do()
if err != nil {
log.Fatal(err)
}
count := 0
for _, e := range resp.Values {
for _, f := range e {
if f != "" {
count++
}
}
}
fmt.Println(count)
在这个修改后的脚本中,假设您已经能够使用 Sheets API 从 Google 电子表格中检索值。请注意这一点。