You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python在Google Sheet指定区域查找字符串并提取单元格标识?

Python 操作 Google Sheet 查找特定字符串并提取单元格标识

前置准备

  1. 启用Google Sheets API并获取服务账号密钥

    • 登录Google Cloud控制台,创建新项目,搜索启用「Google Sheets API」
    • 进入「凭据」页面,创建「服务账号密钥」,选择JSON格式下载,保存为service_account.json(后续代码会用到)
    • 打开目标Google Sheet,共享给服务账号的邮箱(JSON文件里的client_email字段),权限设为「编辑」或「查看者」(按需选择)
  2. 安装依赖库
    执行命令安装所需工具包:

    pip install gspread oauth2client
    

实现代码示例

import gspread
from oauth2client.service_account import ServiceAccountCredentials

# 1. 认证并连接Google Sheet
scope = ["https://spreadsheets.google.com/feeds", "https://www.googleapis.com/auth/drive"]
creds = ServiceAccountCredentials.from_json_keyfile_name("service_account.json", scope)
client = gspread.authorize(creds)

# 2. 打开指定的Sheet(替换为你的Sheet名称或ID)
spreadsheet = client.open("你的Sheet名称")
worksheet = spreadsheet.sheet1  # 取第一个工作表,也可用worksheet = spreadsheet.worksheet("工作表名称")

# 3. 定义要查找的目标字符串和指定列(比如A列)
target_str = "要查找的特定字符串"
target_col = "A:A"  # 指定查找区域

# 4. 获取列数据并遍历匹配
cells = worksheet.range(target_col)
matching_cells = []

for cell in cells:
    if cell.value == target_str:
        matching_cells.append(cell.address)  # 直接获取A1、A2这类单元格标识

# 5. 输出结果
if matching_cells:
    print(f"找到匹配的单元格:{', '.join(matching_cells)}")
else:
    print("未找到匹配的字符串")

关键说明

  • worksheet.range(target_col):获取指定区域的所有单元格对象,每个对象自带value(单元格内容)和address(单元格标识)属性
  • 如需模糊匹配,可将判断条件改为target_str in cell.value
  • 若Sheet数据量较大,建议用worksheet.get_all_values()批量获取数据,再结合行号推导单元格标识(减少API调用次数),示例如下:
    # 模糊匹配+大数量优化示例
    all_values = worksheet.get_all_values()
    matching_cells = []
    for row_idx, row in enumerate(all_values, start=1):
        # 检查A列(列表索引为0)的内容
        if target_str in row[0]:
            matching_cells.append(f"A{row_idx}")
    

内容的提问来源于stack exchange,提问作者Amish Raval

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 19:18:18