如何用数据计算单元格

时间:2021-01-21 10:07:20

标签: go google-sheets google-sheets-api

我正在从我指定的范围中获取值。但是有没有办法计算这些值? 我正在使用这种方法从工作表中获取值。

spreadsheetId :=""
range2 :=""
valueRenderOption := "FORMATTED_VALUE"

resp, err :=sheetsService.Spreadsheets.Values.Get(spreadsheetId, range2).ValueRenderOption(valueRenderOption).Do()
if err != nil {
    log.Fatal(err)
}

1 个答案:

答案 0 :(得分:1)

修改点:

  • 对于sheetsService.Spreadsheets.Values.Get(spreadsheetId, range2).ValueRenderOption(valueRenderOption).Do(),当A1:C1range2时,返回值为{"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 电子表格中检索值。请注意这一点。

参考:

相关问题