【问题标题】:PHP Google sheets API - Get column titles (Row 1 in spreadsheet)PHP Google sheet API - 获取列标题(电子表格中的第 1 行)
【发布时间】:2016-06-30 12:36:14
【问题描述】:

我正在使用 PHP Google 表格客户端:

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

此客户端实现 API 的 v3:

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] => "管理员头衔"

等等

我该怎么做?

【问题讨论】:

    标签: php google-sheets google-api-php-client google-sheets-api


    【解决方案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;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-04
      相关资源
      最近更新 更多