Få en liste af plader og seneste ark i google-regneark api v4 i Python

Jeg forsøger at læse og skrive værdier af forskellige ark i python 3 efter google officielle dokumentation. Selvom jeg er i stand til at læse værdier fra visse plader ved hjælp af række fast ejendom i rangeName = 'Class Data!A2:E' i kodeblokken, der er nævnt nedenfor:

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', [])

Og jeg forsøger at skrive værdier ved hjælp af de eksempelkode fra her:

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

Det problem jeg står over for, er, at jeg ikke er i stand til at bevare seneste plader navn eller id, der fra officiel dokumentation, og som nyeste api revision er at gøre tilfældige gid(vi kan ikke vide, hvad der ville være det ark, gid ville være). Er der nogen måde at se listen af ark eller regneark seneste reviderede ark navn eller id ved hjælp af google ark api v4?

OriginalForfatteren nexuscreator | 2016-07-07

3 svar

  1. 29

    Du kan få en liste over de plader ved hjælp af de “få” metode på regneark:

    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)
    hej! Kan du fortælle mig om noget, svarer til at få ark metadata i javascript?

    OriginalForfatteren user4426017

  2. 9

    Ingen har bedt om, SÅ for PHP bibliotek endnu, men jeg ville bare lige tilføje dette svar her, da dette er den første Google-resultat for relaterede spørgsmål.

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

    OriginalForfatteren WOUNDEDStevenJones

  3. 0

    Dette er en C# – metode der returnerer ark id værdi af et bestemt ark, antal og Regneark-id.

    Dette blev gjort med Google Ark API v4.

        private static Int32 GetSheetIdFromSheetNum(string sSpreadsheetId, Int32 iSheetNum, SheetsService gsService, ref string sTitle)
        {   //Get the Sheet Id for the specified sheet number and Spreadsheet id.
    
            Int32 iSheetId = -1;
            Int32 iLoop = -1;
    
            //Google.Apis.Sheets.v4.Data.Sheet gsSheet;
            Google.Apis.Sheets.v4.Data.Spreadsheet gsSpreadsheet;
    
            try
            {
                sTitle = string.Empty;
                gsSpreadsheet = gsService.Spreadsheets.Get(sSpreadsheetId).Execute();
    
                foreach (Sheet gsSheet in gsSpreadsheet.Sheets)
                {
                    iLoop += 1;
                    if (iLoop != iSheetNum)
                    {
                        continue;
                    }
    
                    iSheetId = (gsSheet.Properties.SheetId).GetValueOrDefault(-1);      
                    sTitle = gsSheet.Properties.Title;
                    break;
                }
    
            }
            catch (Exception ex)
            {
                // Do error processing here.
            }
    
            return iSheetId;
    
        } //GetSheetIdFromSheetNum

    OriginalForfatteren JohnH

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *