使用google-apis进行Google工作表,如何根据条件更新特定单元格

时间:2016-09-01 19:42:48

标签: go google-api

我正在使用google的google-apis v4,我已成功使用他们的入门演示并更新它以从我的Google工作表中读取。我现在想读取(循环)我的结果,如果row [n]中的结果符合特定条件,我想以A1格式获得该范围,以便我可以运行spreadsheets.values.update(spreadsheetId,range )。

我正在使用的示例中的代码,并尝试扩展为r / w功能。

readRange := "WorkSheet!C4:G40"
resp, err := srv.Spreadsheets.Values.Get(spreadsheetID, readRange).Do()
if err != nil {
    log.Fatalf("Unable to retrieve data from sheet. %v", err)
}

if len(resp.Values) > 0 {
    for _, row := range resp.Values {
        fmt.Printf("%s, %s, %s\n", row[0], row[3], row[4])
    }
} else {
    fmt.Print("No data found.")
}

我想做的是采取以上措施并添加if条件如下:

readRange := "WorkSheet!C4:G40"
resp, err := srv.Spreadsheets.Values.Get(spreadsheetID, readRange).Do()
if err != nil {
    log.Fatalf("Unable to retrieve data from sheet. %v", err)
}

if len(resp.Values) > 0 {
    for _, row := range resp.Values {
        // check the value of row[0]
        // If true then take action on the cell @ row[3]
        if row[0] == "Done" {
            rowRange := row[3].A1FormattedRange  // I made this up, this is where I'm stuck.
            spreadsheets.values.update(spreadsheetId, rowRange, update)
        }
    }
} else {
    fmt.Print("No data found.")
}

1 个答案:

答案 0 :(得分:0)

for rowNum, row := range resp.Values {
    // check the value of row[0]
    // If true then take action on the cell @ row[3]
    if row[0] == "Done" {
        rowRange := sheets.getRange(rowNum, 3)
        spreadsheets.values.update(spreadsheetId, rowRange.getA1Notation(), update)
    }
}

这不是经过测试的代码。 This文档应该有所帮助。