项目作者: digitalstars

项目描述 :
Библиотека для работы с гугл таблицами | google api php client google-sheets sheets library wrapper
高级语言: PHP
项目地址: git://github.com/digitalstars/google-sheets.git
创建时间: 2021-08-24T18:15:57Z
项目社区:https://github.com/digitalstars/google-sheets

开源协议:MIT License

下载


Предисловие

Библиотека для удобной работы с гугл таблицами с использованием Service Account
Библиотека имеет зависимость от https://github.com/googleapis/google-api-php-client

Установка

composer require digitalstars/google-sheets

У библиотеки есть баг(issue), что с первого раза не отрабатывает какой-то очищающий скрипт. Поэтому команду установки нужно выполнить 2 РАЗА!!, иначе не появится vendor/autoload.php

Перед началом работы

1) Вот по этому гайду создаете .json конфиг и почту сервисного аккаунта

  1. $spreadsheet_id = '1FpDbHUknChjWzioeTrddMur-d_tSl7E_-tKCqn9xW6o';
  2. $config_path = 'fire-322212-c5306b491ecc.json';

2) Заходите в гугл таблицу и выдаете сервисной почте права редактора

Примеры работы

Подключение

  1. <?php
  2. require_once 'vendor/autoload.php';
  3. use DigitalStars\Sheets\DSheets;
  4. $spreadsheet_id = '1FpDbHUknChjWzioeTrddMur-d_tSl7E_-tKCqn9xW6o';
  5. $config_path = 'fire-322212-c5306b491ecc.json';
  6. $sheet = DSheets::create($spreadsheet_id, $config_path)->setSheet('Лист');

Выгрузка данных

  1. $data = $sheet->get(); //выгрузит все данные в листе
  2. print_r($data);
  3. // [
  4. // ['id', 'name', 'mail'],
  5. // ['1', 'name1', 'mail1'],
  6. // ['2', 'name1', 'mail2']
  7. // ]
  8. $data = $sheet->setSheet('Лист2')->get('A:A'); //выгрузит весь столбец А из Лист2
  9. print_r($data);
  10. // [
  11. // ['id'],
  12. // ['1']
  13. // ['2']
  14. // ]
  15. $data = $sheet->get('A2:B3'); //выгрузит диапазон A2:B3
  16. print_r($data);
  17. // [
  18. // ['1', 'name1'],
  19. // ['2', 'name1']
  20. // ]

Добавление в конец листа

Этот метод добавляет данные в конец листа, где встречена пустота

  1. $sheet->append([['Имя', 'Фамилия', 'Возраст']]); //добавит в конец A по максимальной используемой строке всех букв
  2. //Если C6-C8 пустые, то добавит в них. Иначе в самый конец A ориентируясь по максимальной используемой строке всех букв
  3. $sheet->setSheet('Лист2')->append([['Имя', 'Фамилия', 'Возраст']], 'C6');

Обновление/добавление данных

  1. $sheet->update([['Имя', 'Фамилия', 'Возраст']]); //добавит в A1-C1
  2. $sheet->setSheet('Лист2')->update([['Имя', 'Фамилия', 'Возраст']], 'A3'); //добавит в A3-C3 даже если они заполнены

Использование оригинального Google_Service_Sheets

  1. $service = $sheet->getService(); //получаем
  2. $service->spreadsheets->...
  3. $service->spreadsheets_sheets->...
  4. $service->spreadsheets_values->...
  5. $client = $service->getClient();
  6. $sheet->setService($service); //устанавливаем обратно если надо