go กับ google sheets

การเขียน Go เพื่อไปอ่านหรือเขียนใน Google Sheets ต้องทำอะไรบ้าง

วันที่ทดลองใช้ go version 1.16.5

สิ่งที่ต้องเตรียม

Google Account ซึ่งจะใช้ของส่วนตัวมาทดลองดูก็ได้
Google Cloud ก็ใช้ account เดียวกับข้อ 1.
ติดตั้ง Go ในเครื่องให้เรียบร้อย

เตรียม …


This content originally appeared on DEV Community and was authored by Pallat Anchaleechamaikorn

การเขียน Go เพื่อไปอ่านหรือเขียนใน Google Sheets ต้องทำอะไรบ้าง

วันที่ทดลองใช้ go version 1.16.5

สิ่งที่ต้องเตรียม

  1. Google Account ซึ่งจะใช้ของส่วนตัวมาทดลองดูก็ได้
  2. Google Cloud ก็ใช้ account เดียวกับข้อ 1.
  3. ติดตั้ง Go ในเครื่องให้เรียบร้อย

เตรียม Google Sheet

  • สร้างไฟล์ใน Google Sheet ไว้ 1 file ตั้งชื่อให้เรียบร้อย
  • ตั้งชื่อ Sheet ไว้สักหน่อย เช่น Sheet1 เป็นต้น
  • จะเพิ่มข้อมูลไว้เล่นๆดูสักหน่อยก็แล้วแต่เลย
  • กด Share เอาแบบ public ไปเลย

สร้าง Service Account

  • ไปที่ Google Console
  • ไปที่เมนู APIs & Services
  • ถ้ายังไม่มี Project ก็สร้างเลย
  • กด Enable APIS AND SERVICES
  • ค้นหาด้วยคำว่า sheets จะเจอ Google Sheets API กดเข้าไปเลย
  • ไปสร้าง Service Account แล้ว Download json file

เขียนโค้ดสิครับ รออะไร

package main

import (
    "context"
    "fmt"
    "io/ioutil"
    "log"

    "golang.org/x/oauth2"
    "golang.org/x/oauth2/google"
    "google.golang.org/api/option"
    "google.golang.org/api/sheets/v4"
)

func main() {
    ctx := context.Background()
    b, err := ioutil.ReadFile("./ไฟล์ที่donwloadมา.json")
    if err != nil {
        log.Fatalf("Unable to read client secret file: %v", err)
    }

    config, err := google.JWTConfigFromJSON(b, "https://www.googleapis.com/auth/spreadsheets")
    if err != nil {
        log.Fatalf("Unable to parse client secret file to config: %v", err)
    }
    client := config.Client(oauth2.NoContext)

    srv, err := sheets.NewService(ctx, option.WithHTTPClient(client))
    if err != nil {
        log.Fatalf("Unable to retrieve Sheets client: %v", err)
    }

    spreadsheetId := "idที่shareเอกสารมา"
    readRange := "A1:E1"
    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 {
        fmt.Println("No data found.")
    } else {
        fmt.Println("Name, Major:")
        for _, row := range resp.Values {
            fmt.Printf("%s, %s\n", row[0], row[4])
        }
    }

    rb := &sheets.ValueRange{
        MajorDimension: "ROWS",
        Values: [][]interface{}{
            {"AAAA"},
        },
    }

    _, err = srv.Spreadsheets.Values.Append(spreadsheetId, "Sheet1!A2:A2", rb).ValueInputOption("USER_ENTERED").Do()
    if err != nil {
        log.Fatalf("Unable to append data to sheet: %v", err)
    }
}

ไม่ได้ capture รูปให้ดูนะครับ ขออภัย คิดว่ากดๆตาม ในช่วงเวลาเดียวกัน น่าจะไม่ยากมากครับ


This content originally appeared on DEV Community and was authored by Pallat Anchaleechamaikorn


Print Share Comment Cite Upload Translate Updates
APA

Pallat Anchaleechamaikorn | Sciencx (2021-07-04T08:34:21+00:00) go กับ google sheets. Retrieved from https://www.scien.cx/2021/07/04/go-%e0%b8%81%e0%b8%b1%e0%b8%9a-google-sheets/

MLA
" » go กับ google sheets." Pallat Anchaleechamaikorn | Sciencx - Sunday July 4, 2021, https://www.scien.cx/2021/07/04/go-%e0%b8%81%e0%b8%b1%e0%b8%9a-google-sheets/
HARVARD
Pallat Anchaleechamaikorn | Sciencx Sunday July 4, 2021 » go กับ google sheets., viewed ,<https://www.scien.cx/2021/07/04/go-%e0%b8%81%e0%b8%b1%e0%b8%9a-google-sheets/>
VANCOUVER
Pallat Anchaleechamaikorn | Sciencx - » go กับ google sheets. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2021/07/04/go-%e0%b8%81%e0%b8%b1%e0%b8%9a-google-sheets/
CHICAGO
" » go กับ google sheets." Pallat Anchaleechamaikorn | Sciencx - Accessed . https://www.scien.cx/2021/07/04/go-%e0%b8%81%e0%b8%b1%e0%b8%9a-google-sheets/
IEEE
" » go กับ google sheets." Pallat Anchaleechamaikorn | Sciencx [Online]. Available: https://www.scien.cx/2021/07/04/go-%e0%b8%81%e0%b8%b1%e0%b8%9a-google-sheets/. [Accessed: ]
rf:citation
» go กับ google sheets | Pallat Anchaleechamaikorn | Sciencx | https://www.scien.cx/2021/07/04/go-%e0%b8%81%e0%b8%b1%e0%b8%9a-google-sheets/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.