簡體   English   中英

使用 Python 更新電子表格單元格值

[英]Update a spreadsheet cell value with 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] 中的值未更新...請問我該怎么做? 謝謝 !

這個改裝怎么樣?

當您腳本中的sheet變量可用於獲取和放置值到 Google 電子表格時,我認為您的大多數腳本是正確的。 我認為只有一個修改點。 的值line[5]與比較helloline[5] == 'hello' 這樣, hello就不會被放到line[5] 我認為你的問題的原因是這個。 所以請修改如下。

從:

line[5] == 'hello'

到:

line[5] = 'hello'

筆記:

  • 在這個修改中,它假設從sheet.values().get()檢索到的values的列大於 6。

如果這不是直接的解決方案,我深表歉意。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM