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.