PHP API листов Google — Получить заголовки столбцов (строка 1 в электронной таблице)

Я использую клиент PHP Google для листов:

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

Этот клиент реализует v3 API:

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

Я обычно получаю строки, как это:

// simplified code:
$worksheet = $worksheetFeed->getByTitle($worksheet_id);
$listFeed = $worksheet->getListFeed();foreach ($listFeed->getEntries() as $entry)
{
$rows []= $entry->getValues();
}

Google превращает «Admin Title» в ключ массива «admintitle». Я хотел бы получить карту ключей массива Google с оригинальными названиями. Например, я хочу массив с записями вроде:

[admintitle] => «Название администратора»

и т.п.

Как я могу это сделать?

1

Решение

Я не думаю, что в API есть что-то для этого, поэтому я сделал свою собственную функцию. Обратите внимание, что мы используем API-клиент 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;
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]