Passer au contenu principal
Package Laravel pour l’API Google Sheets v4. Il masque la complexité de la bibliothèque cliente Google PHP et propose une API intuitive et expressive par chaînage de méthodes.

Caractéristiques

  • Prise en charge de plusieurs méthodes d’authentification — OAuth 2.0 (accès individuel utilisateur), Service Account (communication serveur à serveur), clé API (données publiques)
  • API fluide — Manipulation intuitive des données par chaînage de méthodes
  • Intégration Laravel Collection — Conversion des données Google Sheets en Laravel Collection. Traitement facile en tableau
  • Extensibilité — Ajout de méthodes personnalisées à la Facade via le système de macros
  • Intégration Google Drive — Gestion et listage des feuilles de calcul

Cas d’utilisation typiques

  • Tableau de bord utilisateur — Afficher et manipuler les données de Google Sheets
  • Import/export de données — Transfert massif de données entre l’application Laravel et Google Sheets
  • Génération automatique de rapports — Générer et mettre à jour des rapports par programme
  • Applications multi-utilisateurs — Chaque utilisateur gère ses propres Google Sheets

Philosophie de conception

L’objectif principal de ce package est la lecture depuis Google Sheets. Plutôt que de spécifier des conditions détaillées avant la lecture, la conception consiste à d’abord récupérer toutes les données sous forme de Laravel Collection, puis à les traiter côté Laravel.

Configuration système requise

  • PHP >= 8.3
  • Laravel >= 12.0

Installation

1

Installer via Composer

composer require revolution/laravel-google-sheets
2

Publier le fichier de configuration

php artisan vendor:publish --tag="google-config"
3

Activer les API Google

Dans la Google Cloud Console, activez les API suivantes :
  • Google Sheets API
  • Google Drive API
4

Choisir et configurer la méthode d'authentification

Choisissez parmi les 3 méthodes :
  • Service Account — pour la communication serveur à serveur et les tâches automatisées
  • OAuth 2.0 — pour l’accès individuel utilisateur
  • Clé API — pour les données publiques uniquement

Choix de la méthode d’authentification

MéthodeUsageInteraction utilisateurPortée d’accèsDifficulté
Service AccountServeur à serveur, automatisationAucuneFeuilles de calcul partagéesMoyenne
OAuth 2.0Applications orientées utilisateurConsentement requisFeuilles individuelles de l’utilisateurÉlevée
Clé APIDonnées publiques uniquementAucuneFeuilles publiques uniquementFaible

Utilisation de base

Considérons l’exemple de structure de feuille de calcul suivant.
idnamemail
1name1mail1
2name2mail2
URL de la feuille : https://docs.google.com/spreadsheets/d/{spreadsheetID}/... Récupérez le spreadsheetId depuis l’URL.

Service Account

Lors de l’utilisation de l’authentification par Service Account, la configuration du token n’est pas nécessaire.
use Revolution\Google\Sheets\Facades\Sheets;

// L'authentification Service Account est effectuée automatiquement à la configuration
$values = Sheets::spreadsheet('spreadsheetId')->sheet('Sheet 1')->all();
// [
//   ['id', 'name', 'mail'],
//   ['1', 'name1', 'mail1'],
//   ['2', 'name2', 'mail2']
// ]

OAuth

Lors de l’utilisation de l’authentification OAuth, vous devez configurer le token d’accès de l’utilisateur.
use Revolution\Google\Sheets\Facades\Sheets;

$user = $request->user();

$token = [
    'access_token'  => $user->access_token,
    'refresh_token' => $user->refresh_token,
    'expires_in'    => $user->expires_in,
    'created'       => $user->updated_at->getTimestamp(),
];

// all() retourne un tableau
$values = Sheets::setAccessToken($token)->spreadsheet('spreadsheetId')->sheet('Sheet 1')->all();
// [
//   ['id', 'name', 'mail'],
//   ['1', 'name1', 'mail1'],
//   ['2', 'name1', 'mail2']
// ]

Récupérer les valeurs de la feuille avec l’en-tête comme clé (recommandé)

Nous recommandons cette méthode car la transformation en collection est simple et le traitement ultérieur reste flexible.
use Revolution\Google\Sheets\Facades\Sheets;

// get() retourne une collection Laravel
$rows = Sheets::sheet('Sheet 1')->get();

$header = $rows->pull(0);
$values = Sheets::collection(header: $header, rows: $rows);
$values->toArray()
// [
//   ['id' => '1', 'name' => 'name1', 'mail' => 'mail1'],
//   ['id' => '2', 'name' => 'name2', 'mail' => 'mail2']
// ]
Blade
@foreach($values as $value)
  {{ data_get($value, 'name') }}
@endforeach

Utilisation de la notation A1

use Revolution\Google\Sheets\Facades\Sheets;

$values = Sheets::sheet('Sheet 1')->range('A1:B2')->all();
// [
//   ['id', 'name'],
//   ['1', 'name1'],
// ]

À propos de la notation A1

La notation A1 est la méthode standard pour désigner une cellule ou une plage dans Google Sheets (ex : « A1 », « A1:B2 »).
  • « A1 » désigne la cellule à la colonne A, ligne 1.
  • « A1:B2 » désigne la plage (rectangle) allant de la cellule A1 à B2.
  • « A:B » désigne toutes les lignes des colonnes A et B.
Si vous n’êtes pas familier avec la notation A1, ou si la plage est dynamique ou complexe, il est souvent plus simple de récupérer toutes les données, puis de les traiter/filtrer après récupération à l’aide des collections Laravel.

Étapes suivantes

Démo en ligne

Vous pouvez voir le fonctionnement réel sur la démo Laravel Google Sheets.
Dernière modification le 13 juillet 2026