📌  相关文章
📜  读取列中的每个单元格 google app script - Go 编程语言 - Go 编程语言(1)

📅  最后修改于: 2023-12-03 15:28:11.192000             🧑  作者: Mango

以'读取列中的每个单元格 Google App Script - Go 编程语言 - Go 编程语言'为主题的介绍

如果你正在使用 Google Sheets 编辑表格数据,并且需要使用脚本自动化某些任务,那么 Google App Script 可以帮助你。

下面将介绍如何使用 Google App Script 读取 Sheets 中的一列数据,并遍历每个单元格。

首先,我们需要创建一个新的 Google Sheets 文件

在 Google Sheets 中创建一个新的空白文件。在工具栏上选择“工具”>“脚本编辑器”。

实现

首先,我们需要找到要读取的列的范围。你可以使用 .getDataRange() 方法获取整个表格的范围,然后使用 .getColumn() 方法来获取某一列的范围,例如:

// 获取 Sheet1(第一个工作表)中第一列的范围
range := ss.getSheetByName("Sheet1").getRange(1, 1, ss.getLastRow(), 1)

然后,我们可以使用 .getValues() 方法获取范围内的值,这将返回一个二维数组。我们可以使用一个循环遍历每个单元格:

// 获取 Sheet1(第一个工作表)中第一列的范围
range := ss.getSheetByName("Sheet1").getRange(1, 1, ss.getLastRow(), 1)

// 获取范围内的值
values := range.getValues()

// 遍历每个单元格
for _, row := range values {
  for _, col := range row {
    // 在这里处理每个单元格的值
    fmt.Println(col)
  }
}
完整代码
package main

import (
	"fmt"

	"google.golang.org/api/sheets/v4"
)

func main() {
	// 创建 Sheets 服务
	srv := createSheetsService()

	// 打开文件
	ss, err := srv.Spreadsheets.Get("SPREADSHEET_ID").Do()
	if err != nil {
		panic(err)
	}

	// 获取 Sheet1(第一个工作表)中第一列的范围
	range := ss.getSheetByName("Sheet1").getRange(1, 1, ss.getLastRow(), 1)

	// 获取范围内的值
	values := range.getValues()

	// 遍历每个单元格
	for _, row := range values {
		for _, col := range row {
			// 在这里处理每个单元格的值
			fmt.Println(col)
		}
	}
}

func createSheetsService() *sheets.Service {
	// 创建 Google Sheets 服务
	srv, err := sheets.NewService(context.Background())
	if err != nil {
		panic(err)
	}

	// 授权
	config := getConfig()
	token := getToken(config)
	srv.Client = config.Client(context.Background(), token)
	return srv
}
总结

使用上述代码片段,你可以轻松的读取 Sheets 中的一列数据,并对每个单元格进行操作。本文只是介绍了基本的读取操作,你可以使用 setValue()setValues() 方法来修改单元格的值,以及使用 openById() 方法来打开其他的 Sheets 文件。