1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
| import ( "golang.org/x/oauth2/google" "google.golang.org/api/sheets/v4" )
func main() {
b, err := ioutil.ReadFile(credential.json) if err != nil { log.Fatalf("无法读取密钥文件:%v", err) }
config, err := google.JWTConfigFromJSON(b, sheets.SpreadsheetsScope) if err != nil { log.Fatalf("无法创建配置:%v", err) }
client := config.Client(context.Background())
sheetsService, err := sheets.New(client) if err != nil { log.Fatalf("无法创建 Sheets 服务:%v", err) }
spreadsheetID := "MY_GG_SHEET_ID" sheetName := time.Now().Format("010215")
sheetProperties := &sheets.SheetProperties{ Title: sheetName, }
addSheetRequest := &sheets.AddSheetRequest{ Properties: sheetProperties, }
batchUpdateRequest := &sheets.BatchUpdateSpreadsheetRequest{ Requests: []*sheets.Request{ { AddSheet: addSheetRequest, }, }, }
batUpdResp, err := sheetsService.Spreadsheets.BatchUpdate(spreadsheetID, batchUpdateRequest).Do() if err != nil { log.Fatalf("Unable to create new sheet: %v", err) panic("执行批量更新操作,创建新的 Sheet失败") }
newSheetID := batUpdResp.Replies[0].AddSheet.Properties.SheetId fmt.Printf("Created new sheet with ID: %d\n", newSheetID)
values := [][]interface{}{ {"Value 1", "Value 2", "Value 3"}, {"Value 4", "Value 5", "Value 6"}, }
writeRequest := &sheets.ValueRange{ Values: values, }
appendResp, err := sheetsService.Spreadsheets.Values.Append(spreadsheetID, sheetName, writeRequest).ValueInputOption("USER_ENTERED").Do() if err != nil { log.Fatalf("Unable to append data: %v", err) } fmt.Printf("Appended %d rows\n", appendResp.Updates.UpdatedRows) }
|