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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/975967.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

HTTP SSE 实现

参考: SSE协议 SSE技术详解:使用 HTTP 做服务端数据推送应用的技术 一句概扩 SSE可理解为:服务端和客户端建立连接之后双方均保持连接,但仅支持服务端向客户端推送数据。推送完毕之后关闭连接,无状态行。 下面是基于…

网络安全与措施

🍅 点击文末小卡片 ,免费获取网络安全全套资料,资料在手,涨薪更快 # 网络安全问题概述 1) 数据安全 访问(授权访问);存储(容灾、备份或异地备份等) 2) 应用程序 不能…

Next.js 学习-1

Next.js学习 引用:https://www.nextjs.cn/learn/basics/create-nextjs-app 先试试水吧,正好dify用的这个构建的前端项目。 使用 如果您尚未安装 Node.js,请 从此处安装。要求 Node.js 10.13 或更高版本。 好吧得用新的了,记得…

#渗透测试#批量漏洞挖掘#九思OA系列漏洞之SQL注入漏洞(CNVD-2023-23771)

免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停…

macOS14 安装MySQL指南

1.下载 地址:https://downloads.mysql.com/archives/community/ 2.安装 双击 *.dmg 文件,按提示点击“下一步”,途中会弹出一个对话框,要求输入 root 密码,完成即可。 3.开启MySQL服务。 点击右上角苹果按钮&#x…

《Head First设计模式》读书笔记 —— 单件模式

文章目录 为什么需要单件模式单件模式典型实现剖析定义单件模式本节用例多线程带来的问题解决问题优化 Q&A总结 《Head First设计模式》读书笔记 相关代码: Vks-Feng/HeadFirstDesignPatternNotes: Head First设计模式读书笔记及相关代码 用来创建独一无二的&a…

Git常见命令--助力开发

git常见命令: 创建初始化仓库: git 将文件提交到暂存区 git add 文件名 将文件提交到工作区 git commit -m "注释(例如这是发行的版本1)" 文件名 查看状态 如果暂存区没有文件被提交显示: $ git status On…

【每日八股】Redis篇(二):数据结构

Redis 数据类型? 主要有 STRING、LIST、ZSET、SET 和 HASH。 STRING String 类型底层的数据结构实现主要是 SDS(简单动态字符串),其主要应用场景包括: 缓存对象:可以用 STRING 缓存整个对象的 JSON&…

LLM大语言模型私有化部署-使用Dify的工作流编排打造专属AI诗词数据分析师

背景 前面的文章通过 Ollama 私有化部署了 Qwen2.5 (7B) 模型,然后使用 Docker Compose 一键部署了 Dify 社区版平台。 LLM大语言模型私有化部署-使用Dify与Qwen2.5打造专属知识库:在 Dify 平台上,通过普通编排的方式,创建了基于…

Linux虚拟机快照

快照管理 如果在使用虚拟机系统的时候(比如linux),想回到原先的某一个状态,也就是说担心可能有些误操作造成系统异常,需要回到原先某个正常运行的状态 示例: 状态A和状态B处各保存了快照,运行到状态C时发生异常&…

【异常错误】pycharm debug view变量的时候显示不全,中间会以...显示

异常问题: 这个是在新版的pycharm中出现的,出现的问题,点击view后不全部显示,而是以...折叠显示 在setting中这么设置一下就好了: 解决办法: https://youtrack.jetbrains.com/issue/PY-75568/Large-stri…

快速入门Springboot+vue——MybatisPlus多表查询及分页查询

学习自哔哩哔哩上的“刘老师教编程”,具体学习的网站为:7.MybatisPlus多表查询及分页查询_哔哩哔哩_bilibili,以下是看课后做的笔记,仅供参考。 多表查询 多表查询[Mybatis中的]:实现复杂关系映射,可以使…

vscode 配置 Copilot 提示GHE.com连接失败

步骤一:打开设置并进入 settings.json 点击菜单栏中的 “文件” -> “首选项” -> “设置”。 在搜索设置栏中输入 “Copilot: Advanced”。 点击搜索结果下方的 “在 settings.json 中编辑” 链接,这会打开 settings.json 文件。 步骤二&#…

基于拼接的宏基因组全流程

下面是基于组装的宏基因组数据分析流程 目录 基本流程介绍 megahit组装 什么是N50? 基于拼接结果的基因预测 cdhit去冗余 功能注释 宏基因组的分箱操作 分箱的目的: 分箱的原理: 基本流程介绍 单独对每个样本进行基因集组装,得到genome1,2,3…

基于javaweb的SpringBoot酒店管理系统设计和实现(源码+文档+部署讲解)

技术范围:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论…

Grok 3.0 Beta 版大语言模型评测

2025年2月17日至18日,全球首富埃隆马斯克(Elon Musk)携手其人工智能公司xAI,在美国重磅发布了Grok 3.0 Beta版。这款被誉为“迄今为止世界上最智能的语言模型”的AI,不仅集成了先进的“DeepSearch”搜索功能&#xff0…

【R语言】绘图

一、散点图 散点图也叫X-Y图,它将所有的数据以点的形式展现在坐标系上,用来显示变量之间的相互影响程度。 ggplot2包中用来绘制散点图的函数是geom_point(),但在绘制前需要先用ggplot()函数指定数据集和变量。 下面用mtcars数据集做演示&a…

php session数据存储位置选择

PHP session 数据的存储位置可以通过配置文件或者代码来进行设置。默认情况下,session 数据是存储在服务器的文件系统中的。你可以将 session 数据存储在其他地方,例如数据库、缓存等。 基础概念 PHP session默认情况下将数据存储在服务器端的临时文件中…

保姆级! 本地部署DeepSeek-R1大模型 安装Ollama Api 后,Postman本地调用 deepseek

要在Postman中访问Ollama API并调用DeepSeek模型,你需要遵循以下步骤。首先,确保你有一个有效的Ollama服务器实例运行中,并且DeepSeek模型已经被加载。 可以参考我的这篇博客 保姆级!使用Ollama本地部署DeepSeek-R1大模型 并java…

Windows桌面系统管理5:Windows 10操作系统注册表

Windows桌面系统管理0:总目录-CSDN博客 Windows桌面系统管理1:计算机硬件组成及组装-CSDN博客 Windows桌面系统管理2:VMware Workstation使用和管理-CSDN博客 Windows桌面系统管理3:Windows 10操作系统部署与使用-CSDN博客 Wi…