python 操作gsheet 实现读写操作脚本实战

# 尝试版本: Credentials.from_authorized_user_file

from google.oauth2.credentials import Credentials  
from googleapiclient.discovery import build

# If modifying these scopes, delete the file token.json.
SCOPES = ["https://www.googleapis.com/auth/spreadsheets.readonly"]
KEY_FILE_LOCATION = './Auto/gaforpython.json'

credentials = Credentials.from_authorized_user_file(KEY_FILE_LOCATION, SHEET_SCOPES)
service = build('sheets', 'v4', credentials=credentials)
# ValueError: Authorized user info was not in the expected format, missing fields refresh_token, client_secret
# ---------------------------------------------------------------------------------------------

from googleapiclient.discovery import build
from oauth2client.service_account import ServiceAccountCredentials

SHEET_SCOPES = ['https://www.googleapis.com/auth/spreadsheets']  # .readonly,只读权限, 无.readonly读写操作的权限
KEY_FILE_LOCATION = 'xxx.json'

credentials = ServiceAccountCredentials.from_json_keyfile_name(KEY_FILE_LOCATION, SHEET_SCOPES)
service = build('sheets', 'v4', credentials=credentials)

import pandas as pd
from datetime import datetime

# 创建一个简单的 DataFrame 测试数据
data = {'Name': ['MIN', 'Bob', 'Charlie'],
        'Age': [99, 30, 35],
        'City': ['Shenzhen', 'London', 'Paris']}
df = pd.DataFrame(data)
df["time"] = datetime.now().strftime('%Y-%m-%d %H:%M:%S')

list_df = df.values.tolist()
# SheetDef.new_row(service, '1ZkXZYlA2yrMXTTa9DlWsgOB3sF2tVQGlmzExsokXDFY', '0', len(list_df))
range_ = '工作表1!A1:D' + str(len(list_df)+ 0)  # '工作表1!A1:D{num}'
# range_ = '工作表1!A1:D1'  # 建议写成默认最好

# range_ = '工作表1!A1:A1'  # 锚定点位
# range_ = '工作表4!H1:H1'  # 锚定点位
print(range_)

SheetDef.insert_value(service, '1ZkXZYlA2yrMXTTa9DlWsgOB3sF2tVQGlmzExsokXDFY',range_, list_df)

工作表1!A1:D3
{'spreadsheetId': '1ZkXZYlA2yrMXTTa9DlWsgOB3sF2tVQGlmzExsokXDFY',
 'tableRange': "'工作表1'!A1:D19",
 'updates': {'spreadsheetId': '1ZkXZYlA2yrMXTTa9DlWsgOB3sF2tVQGlmzExsokXDFY',
  'updatedRange': "'工作表1'!A20:D22",
  'updatedRows': 3,
  'updatedColumns': 4,
  'updatedCells': 12}}



# 只读: .readonly  即可
SheetDef.get_sheet_value(service, '1ZkXZYlA2yrMXTTa9DlWsgOB3sF2tVQGlmzExsokXDFY', '工作表1!A1:D3')

[['Name', 'Age', 'City', 'update_time'],
 ['MIN', '99', 'Shenzhen', '2024-07-13 00:54:15'],
 ['Bob', '30', 'London', '2024-07-13 00:54:15']]

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值