[英]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]
與比較hello
在line[5] == 'hello'
。 這樣, hello
就不會被放到line[5]
。 我認為你的問題的原因是這個。 所以請修改如下。
line[5] == 'hello'
line[5] = 'hello'
sheet.values().get()
檢索到的values
的列大於 6。如果這不是直接的解決方案,我深表歉意。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.