Python

2016-07-07 12 views
8

'da google e-tablo api v4 sayfasındaki sayfaların ve son sayfaların listesini alın google official documentation'u izleyerek python 3'te farklı sayfaların değerlerini okumaya ve yazmaya çalışıyorum.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', []) 

Ve sample code from here kullanarak değerleri yazmaya çalışıyorum: Ben kod bloğu rangeName = 'Class Data!A2:E' aralık özelliğini kullanarak belirli yaprak değerleri okumak mümkün duyuyorum rağmen aşağıda belirtilen

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() 

Sorun karşı karşıya olduğum en son sayfa adı veya resmi belgelerden id tutmam mümkün değildir ve en son api revizyonu rasgele giderken (yaprağın ne olacağını bilemeyebiliriz). Google sheet api v4 kullanarak sayfaları veya elektronik tabloların en son revize edilmiş sayfa adını veya kimliğini listelemenin herhangi bir yolu var mı?

E-tablolar üzerinde "get" yöntemini kullanarak sayfaları listesini alabilirsiniz

cevap

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'te sayfa meta verilerini almak için eşdeğer bir şeyden bahseder misiniz? –

4

henüz kimse PHP kütüphanesi için SO bu konuda istedi, ama sadece burada bu cevabı eklemek istedim ilgili sorular için ilk Google sonucu olduğu için.

<?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; 

?>