package sheet import ( "context" "recipe-manager/helpers" "golang.org/x/oauth2" "google.golang.org/api/option" "google.golang.org/api/sheets/v4" ) type SheetService interface { } type sheetService struct { config *oauth2.Config service *sheets.Service } func NewSheetService(ctx context.Context) (SheetService, error) { clientSecret, err := helpers.GetClientSecret("client_secret.json") if err != nil { return nil, err } token, err := helpers.GetToken("token.json") if err != nil { return nil, err } service, err := sheets.NewService(ctx, option.WithTokenSource(clientSecret.TokenSource(ctx, token))) if err != nil { return nil, err } return &sheetService{ config: clientSecret, service: service, }, nil } func (s *sheetService) GetSheet(ctx context.Context, sheetID string) { spreadSheet, err := s.service.Spreadsheets.Get(sheetID).Do() if err != nil { panic(err) } for _, sheet := range spreadSheet.Sheets { // print data collumn C readRange := sheet.Properties.Title + "!C:C" resp, err := s.service.Spreadsheets.Values.Get(sheetID, readRange).Do() if err != nil { panic(err) } if len(resp.Values) == 0 { println("No data found") } else { for _, row := range resp.Values { println(row[0].(string)) } } } }