2016-07-07 8 views
8

google official documentationの後にpython 3で別のシートの値を読み書きしようとしています。Googleのスプレッドシートapi v4のシートと最新シートのリストをPythonで取得する

discoveryUrl = ('https://sheets.googleapis.com/$discovery/rest?' 
        'version=v4') 
    service = discovery.build('sheets', 'v4', http=http, 
           discoveryServiceUrl=discoveryUrl) 

    spreadsheetId = '1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms' 
    rangeName = 'Class Data!A2:E' 
    result = service.spreadsheets().values().get(
     spreadsheetId=spreadsheetId, range=rangeName).execute() 
    values = result.get('values', []) 

そして私はsample code from hereを使用して値を記述しようとしています:私は、後述のコードブロックにrangeName = 'Class Data!A2:E'範囲プロパティを使用して、特定のシートから値を読み取ることができていますが

requests.append({ 
    'updateCells': { 
     'start': {'sheetId': 0, 'rowIndex': 0, 'columnIndex': 0}, 
     'rows': [ 
      { 
       'values': [ 
        { 
         'userEnteredValue': {'numberValue': 1}, 
         'userEnteredFormat': {'backgroundColor': {'red': 1}} 
        }, { 
         'userEnteredValue': {'numberValue': 2}, 
         'userEnteredFormat': {'backgroundColor': {'blue': 1}} 
        }, { 
         'userEnteredValue': {'numberValue': 3}, 
         'userEnteredFormat': {'backgroundColor': {'green': 1}} 
        } 
       ] 
      } 
     ], 
     'fields': 'userEnteredValue,userEnteredFormat.backgroundColor' 
    } 
}) 
batchUpdateRequest = {'requests': requests} 

service.spreadsheets().batchUpdate(spreadsheetId=spreadsheet_id, 
            body=batchUpdateRequest).execute() 

問題私は私が直面しているのは、公式文書から最新のシート名またはIDを保持することができず、最新のAPIリビジョンがランダムなgidを作成しているためです(gidが何であるかは分かりません)。シートまたはスプレッドシートの最新の改訂シート名またはIDをGoogleシートAPI v4を使用して参照する方法はありますか?

答えて

19

あなたは、スプレッドシート上のメソッド「取得」を使用することにより、シートのリストを取得することができます。

sheet_metadata = service.spreadsheets().get(spreadsheetId=spreadsheet_id).execute() 
sheets = sheet_metadata.get('sheets', '') 
title = sheets[0].get("properties", {}).get("title", "Sheet1") 
sheet_id = sheets[0].get("properties", {}).get("sheetId", 0) 
+0

hi! javascriptでシートメタデータを取得するのと同等のことを教えていただけますか? –

4

を誰もがまだPHPライブラリのSOにこのことについて尋ねられなかったが、私はちょうどここにこの答えを追加したいですこれは関連する質問の最初のGoogleの結果だからです。

<?php 

$sheets = array(); 

// ... load library and set up client ... 
$service = new Google_Service_Sheets($client); 

$response = $service->spreadsheets->get($spreadsheetId); 
foreach($response->getSheets() as $s) { 
    $sheets[] = $s['properties']['title']; 
} 

return $sheets; 

?> 
関連する問題