1

Ich verwende einen PHP Google Blätter Client:PHP Google Blätter API - Spaltentitel (Zeile 1 in Tabelle) Holen

https://github.com/asimlqt/php-google-spreadsheet-client

Dieser Client implementiert v3 der API:

https://developers.google.com/google-apps/spreadsheets/data

ich in der Regel Zeilen wie folgt aus:

// simplified code: 
$worksheet = $worksheetFeed->getByTitle($worksheet_id); 
$listFeed = $worksheet->getListFeed(); 


foreach ($listFeed->getEntries() as $entry) 
{ 
    $rows []= $entry->getValues(); 
} 

Google wandelt "Admin-Titel" in den Array-Schlüssel "admintitle" um. Ich möchte eine Karte der Google-Array-Schlüssel zu den ursprünglichen Titeln erhalten. Zum Beispiel möchte ich ein Array mit Einträgen wie:

[admintitle] => "Admin Titel"

usw.

Wie kann ich das tun?

Antwort

0

Ich glaube nicht, dass es irgendetwas in der API gibt, um dies zu tun, also habe ich meine eigene Funktion gemacht. Beachten Sie, dass wir den API-Client v2.3

function get_worksheet_column_titles($worksheet) 
{ 
    $map = array(); 
    $already_in_map = array(); 

    $row_one_query = array(
     'min-row' => 1, 
     'max-row' => 1 
     ); 

    $cellfeed = $worksheet->getCellFeed($row_one_query); 
    $entries = $cellfeed->getEntries(); 

    foreach ($entries as $cell) 
    { 
     $title = trim($cell->getContent()); 


     if ($title && $title[0] != '_') 
     { 
      $array_key = strtolower(preg_replace('/[^A-Z0-9_-]/i', '', $title)); 

      if ($already_in_map[$array_key]) 
      { 
       // if identical column titles, google adds count to end 

       $seq = 2; 

       while ($already_in_map[$array_key.'_'.$seq]) 
       { 
        $seq++; 
       } 


       $array_key .= "_{$seq}"; 
      } 

      // mark this key as used as used. 
      $already_in_map[$array_key] = true; 

      $map[$array_key] = $title; 
     } 
     else 
     { 
      continue; 
     } 
    } 
    return $map; 
} 
verwenden
Verwandte Themen