使用适用于Google表格的google-apis,如何根据条件更新特定的单元格

I'm using google-apis v4 with golang and I have successfully used their getting started demo and updated it to read from my google sheet. I would now like to read (loop) over my results and if results in row[n] match a specific criteria I'd like to get that range in A1 format so that I can then run spreadsheets.values.update(spreadsheetId, range).

Code from the sample I'm using and trying to extend for r/w functionality.

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
", row[0], row[3], row[4])
    }
} else {
    fmt.Print("No data found.")
}

What I'd like to do is take the above and add an if condition as follows:

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.")
}
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 is not a tested code. This documentation should be of help.