使用Python更新电子表格单元格值

2024-04-16 12:54:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试用Python更新一个值,下面是我的代码:

from googleapiclient.discovery import build
from google_auth_oauthlib.flow import InstalledAppFlow
from google.auth.transport.requests import Request

global values
global sheet
global SAMPLE_SPREADSHEET_ID
global SAMPLE_RANGE_NAME

def connexion():
    # Some code ...
    # Call the Sheets API
    return service.spreadsheets()

def update(values, sheet, SAMPLE_SPREADSHEET_ID, SAMPLE_RANGE_NAME):
    body = {
        'values': values
    }
    result = sheet.values().update(
    spreadsheetId=SAMPLE_SPREADSHEET_ID, range=SAMPLE_RANGE_NAME, valueInputOption='USER_ENTERED', body=body).execute()
    if str(result.get('updatedCells')) != 0:
        return True
    return False

sheet = connexion()
values = sheet.values().get(spreadsheetId=SAMPLE_SPREADSHEET_ID, range=SAMPLE_RANGE_NAME).execute().get('values', [])
for line in values:
    if line[3] == 'Hi !':
        line[5] == 'hello'
if update(values, sheet, SAMPLE_SPREADSHEET_ID, SAMPLE_RANGE_NAME):
    print('   Update ok')
else:
    print('   Error')

我没有任何错误,但已打印“更新确定”。但是,第6个细胞系[5]中的值未更新。。。请问我怎么做?谢谢


Tags: samplenamefromimportidgetreturnif
1条回答
网友
1楼 · 发布于 2024-04-16 12:54:28

这次修改怎么样

当脚本中的变量sheet可用于获取值并将值放入Google电子表格时,我认为您的most脚本是正确的。我认为只有一个修改点。line[5]的值与line[5] == 'hello'处的hello值进行比较。这样,hello就不会被放到line[5]。我认为你的问题的原因是这样的。因此,请修改如下

发件人:

line[5] == 'hello'

致:

line[5] = 'hello'

注:

  • 在这个修改中,它假设从sheet.values().get()检索到的values列多于6列

如果这不是直接的解决办法,我道歉

相关问题 更多 >