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

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

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

相关文章:

  • Java常见问题(一)
  • 新数据结构(12)——代理
  • python入门笔记5-集合与字典
  • 基于Springboot的公寓报修管理系统【附源码】
  • 环境变量与本地变量
  • 【Python】迭代器与生成器详解(可迭代对象、定义、实现方式、区别、使用场景)
  • ROS 2机器人开发--第一个节点
  • 数据中心储能蓄电池状态监测管理系统 组成架构介绍
  • 网络协议相关知识有哪些?
  • linux进程的内存空间映射(段)
  • Spring Boot 常用注解详解
  • 宠物行业研究系列报告
  • 在大数据分析中如何选择合适的算法和模型
  • 黑马点评—短信登陆商户查询缓存
  • C++:使用 SFML 创建强化学习迷宫场景
  • JAVA EE初阶 JVM
  • nginx作为下载服务器配置
  • FPGA开发要学些什么?如何快速入门?
  • 第8章作业
  • Nginx知识详解(理论+实战更易懂)
  • 解放军仪仗司礼大队参加越南纪念南方解放50周年庆典活动
  • 【社论】以“法治之盾”护航每一份创新
  • 美联储报告披露关税战冲击波:消费信心下降,经济担忧加深
  • 《2025职场人阅读报告》:超半数会因AI改变阅读方向
  • 印控克什米尔26名游客遭恐袭丧生后,印度对巴宣布多项反制措施
  • 中纪报刊文:新时代反腐败斗争为党赢得历史主动