1

谷歌表API V4:Python Google Sheets API v4:如何進行批量獲取和批量更新Google工作表?

Python的快速入門演示瞭如何從谷歌電子表格中獲取數據:

result = service.spreadsheets().values() 
     .get(spreadsheetId=spreadsheetId, range=rangeName).execute() 
values = result.get('values', []) 

https://developers.google.com/sheets/quickstart/python

現在,我已經解決了批量獲取語法:

我已經嘗試過以下,但爲'值'爲空:

rangeName = ["Class Data!A2:E2","Class Data!A3:E3"] 
result = service.spreadsheets().values().batchGet(
     spreadsheetId=spreadsheetId, ranges=(rangeName)).execute() 
for r in result['valueRanges']: 
    print (r.values()[0],r.values()[1]) 
+0

您可以發佈您的代碼片斷或類似的授權和使用該spreadsheets.values.batchUpdate/batchGet主代碼和錯誤日誌了。謝謝! –

回答

0

我不擅長python,但我遇到了與java客戶端相同的問題,並希望此解決方案將有所幫助。 我想作爲文檔說負載範圍內僅與

service.spreadsheets().values().batchGet 
         (spreadsheetID).execute(); 

,但沒有結果。當我找到一種方法 - 爲了使batchGet你應該指定你想從電子表格中獲得的範圍列表。請記下這個setRange() invokaion:

final ArrayList<String> RANGES = new ArrayList<>(); 
     RANGES.add("Sheet1"); 
     RANGES.add("Sheet2"); 
BatchGetValuesResponse response = service.spreadsheets().values().batchGet 
        (spreadsheetID).setRanges(RANGES).execute(); 
+0

我嘗試將Java轉換爲Python語法(請參見上文),但沒有成功。 –

+0

我的意思是你可能應該通過附加函數設置範圍 - 不僅僅是傳遞兩個參數來獲取()。 我想,我會檢查它。 – NoisyFlasher

+1

此外,這裏是batchUpdate()的示例: https://developers.google.com/sheets/guides/batchupdate#example – NoisyFlasher

0

如果有人認爲這對谷歌而言,答案是(像NoisyFlasher暗示與Java的例子,如OP是在賽道上)簡單地提供範圍作爲Python列表。然而,結果是一個字典,而不是對象:

rangeName = ["Class Data!A2:E2","Class Data!A3:E3"] 
result = service.spreadsheets().values().batchGet(
     spreadsheetId=spreadsheetId, ranges=rangeName).execute() 
for r in result['valueRanges']: 
    print (r['values'])