当前位置: 首页 > article >正文

Golang访问Google Sheet

步骤

1、创建Project

https://console.cloud.google.com/welcome?hl=zh-cn&project=velvety-being-444310-c1
在这里插入图片描述

2、启用Google Sheet API

https://console.cloud.google.com/apis/library?hl=zh-cn&project=velvety-being-444310-c1
在这里插入图片描述

3、创建服务账号

https://console.cloud.google.com/apis/credentials?hl=zh-cn&project=velvety-being-444310-c1
在这里插入图片描述
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/43fef234ba6144609481ead2c4006531.png

4、创建凭证

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

保存好json文件,后续用于访问Google Sheet

5、给账号添加Sheet访问权限

在这里插入图片描述

给服务账号访问的Sheet加权限。

6、代码访问



package main

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

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

func main() {
	// 读取 Service Account 的密钥文件
	keyFile, err := os.Open("velvety-being-444310-c1-3a10be6dc2f5.json")
	if err != nil {
		log.Fatalf("无法打开密钥文件:%v", err)
	}
	defer keyFile.Close()

	// 解析密钥文件
	keyBytes, err := ioutil.ReadAll(keyFile)
	if err != nil {
		log.Fatalf("无法读取密钥文件:%v", err)
	}
	config, err := google.JWTConfigFromJSON(keyBytes, sheets.SpreadsheetsScope)
	if err != nil {
		log.Fatalf("无法解析密钥文件:%v", err)
	}

	// 创建 Google Sheets 服务客户端
	client := config.Client(context.Background())

	// 创建 Sheets 服务对象
	sheetsService, err := sheets.NewService(context.Background(), option.WithHTTPClient(client))
	if err != nil {
		log.Fatalf("无法创建 Sheets 服务:%v", err)
	}

	// 使用 Sheets 服务对象进行操作
	// ...
	// 指定要访问的 Google Sheets 文档和工作表
	spreadsheetID := "1WhXyvPyqUCX8oxWKiMHns588UKdCaUl6NIYchmLB_gE"
	sheetName := "Final Output" // 替换为你要访问的工作表的名称

	readRange := fmt.Sprintf("%s!AC:BP", sheetName)
	// 通过 Sheets 服务对象获取指定的工作表
	resp, err := sheetsService.Spreadsheets.Values.Get(spreadsheetID, readRange).Do()
	if err != nil {
		log.Fatalf("无法获取 Google Sheets 文档:%v", err)
	}

	// 查找指定名称的工作表
	if len(resp.Values) == 0 {
		fmt.Println("未找到数据")
	} else {
		fmt.Println("读取到的数据:")
		for _, row := range resp.Values {
			for _, value := range row {
				fmt.Printf("%s\t", value)
			}
			fmt.Println()
		}
	}

	fmt.Println("成功访问 Google Sheets!")
}

参考文档

官方文档:https://developers.google.com/sheets/api/quickstart/go?hl=zh-cn

按照官方文档的方式,可能在授权部分被卡住
在这里插入图片描述在这里插入图片描述


http://www.kler.cn/a/555455.html

相关文章:

  • Java 中的内存泄漏问题及解决方案
  • PDF 分割与合并 工具资源分享
  • 合规数助力律师专业工作,开启法律科技新篇
  • PassGPT:基于大型语言模型的密码建模和(引导式)生成
  • 火绒终端安全管理系统V2.0病毒防御功能介绍
  • 解决本地模拟IP的DHCP冲突问题
  • C++ 模板 简单易懂
  • c++ std::weak_ptr使用笔记
  • 纷析云开源版- Vue2-前端表格使用
  • 《深度学习》——RNN网络简单介绍
  • Playwright之---网络管理API
  • 交互编程工具之——Jupyter
  • 简单的接口缓存机制,避免了重复请求,同时支持缓存过期时间。
  • Android 利用addr2line 定位 native crash问题
  • 【Python】迭代器与生成器详解,附代码(可迭代对象、定义、实现方式、区别、使用场景)
  • Dify的安装(本地部署deepseek)
  • 【核心算法篇十九】《 DeepSeek因果推断:双重差分模型如何破解政策评估的「时空难题」》
  • QSNCTF做题记录-应急响应
  • Hot100 贪心算法
  • 撕碎QT面具(9):QT创建和清除Qchart内容的办法