Обработка данных из Гугл-таблицы на сервере

Ниже рассматривается процесс получения и обработки файла Гугл-таблицы на сервере с помощью php-скрипта. Пример приводится без записи в БД (и без взаимодействия с API CMS), т.к. тут всё индивидуально.

Получение данных из Гугл Таблицы Php

Чтобы получить и обработать данные, нужно выполнить небольшие приготовления на стороне Гугл-таблицы. А именно, открыть файл для редактирования.

После этого можно приступать к, собственно, написанию кода.

Итак, задача звучит так: Нужно получить данные с первого листа и обработать их на стороне сервера с помощью php.

Из нашей ссылки на файл в Гугл-таблицах нам нужно записать в переменную 2 параметра:

https://docs.google.com/spreadsheets/d/1A44sfdbXkRURERf0xVw8rfgLrxtt8IPZQiqE_zpoGA-jc/edit#gid=0, где:

1A44sfdbXkRURERf0xVw8rfgLrxtt8IPZQiqE_zpoGA-jc — id нашего документа;

0 — id первого листа (всегда равен 0);

То есть, в файле будет:

$doc_id = '1A44sfdbXkRURERf0xVw8rfgLrxtt8IPZQiqE_zpoGA-jc';
$gid = '0';

Дальше нам нужно получить файл в CSV-формате:

$csv = file_get_contents('https://docs.google.com/spreadsheets/d/' . $doc_id . '/export?format=csv&gid=' . $gid);
$csv = explode("\r\n", $csv);
$array = array_map('str_getcsv', $csv);

Теперь мы можем приступить к обработке данных из файла (содержимое скрипта зависит от ваших задач. В данном примере — это просто вывод на экран данных из файла).

foreach ($array as $arr){
$html .= '<tr>';
foreach ($arr as $td) {
$html .= '<td>'.$td.'</td>';
}
$html .= '';
}
И вывод в таблице на экран:
<table>
<?echo $html;?>
</table>

Результат выполнения скрипта:

Весь код из данной статьи:

<DOCTYPE !html>
<html>
<head>
<meta charset="utf8">
</head>
<body>
<?
//Получаем файл
$doc_id = '1A44sfdbXkRURERf0xVw8rfgLrxtt8IPZQiqE_zpoGA-jc';
$gid = '0';
$csv = file_get_contents('https://docs.google.com/spreadsheets/d/' . $doc_id . '/export?format=csv&gid=' . $gid);
$csv = explode("\r\n", $csv);
$array = array_map('str_getcsv', $csv);

foreach ($array as $arr){
$html .= '<tr>';
foreach ($arr as $td) {
$html .= '<td>'.$td.'</td>';
}
$html .= '';
}

?>

<table>
<?echo $html;?>
</table>

</body>

</html>

В заключение стоит сказать, что у Гугл-таблиц есть определенные нюансы, связанные с частотой обращения к файлу. Но, по опыту автора, при не очень интенсивном использовании (отработка CRON-скрипта раз в сутки), проблем не возникало.