-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.go
47 lines (41 loc) · 1.16 KB
/
main.go
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
package main
import (
"context"
"fmt"
"log"
"google.golang.org/api/option"
"google.golang.org/api/sheets/v4"
)
var spreadsheetID = "1ythUvqWfra0Ihaw0D_PS7R5feJE8bCMPRSfMdlq-uts"
func main() {
credential := option.WithCredentialsFile("credentials/secret.json")
srv, err := sheets.NewService(context.TODO(), credential)
if err != nil {
log.Fatal(err)
}
// 読み込め
readRange := "シート1!A1:B3"
resp, err := srv.Spreadsheets.Values.Get(spreadsheetID, readRange).Do()
if err != nil {
log.Fatalln(err)
}
if len(resp.Values) == 0 {
log.Fatalln("data not found")
}
for _, row := range resp.Values {
fmt.Printf("%s, %s\n", row[0], row[1])
}
// 書き込み
ctx := context.Background()
// 更新範囲の指定
valueRange := "A1:B2"
// 更新値の指定
rb := &sheets.ValueRange{
MajorDimension: "ROWS",
Values: [][]interface{}{
[]interface{}{"123", "hoge"},
[]interface{}{"1.23", "=B1&B1"},
},
}
srv.Spreadsheets.Values.Update(spreadsheetID, valueRange, rb).ValueInputOption("USER_ENTERED").Context(ctx).Do()
}