Zum Hauptinhalt springen
Ein Laravel-Paket für die Google Sheets API v4. Es kapselt die Komplexität der Google-PHP-Client-Library und bietet eine intuitive, ausdrucksstarke Method-Chaining-API.

Merkmale

  • Mehrere Authentifizierungsverfahren – OAuth 2.0 (nutzerspezifischer Zugriff), Service Account (Server-zu-Server-Kommunikation), API-Key (öffentliche Daten)
  • Flüssige API – Intuitive Datenverarbeitung per Method-Chaining
  • Laravel-Collection-Integration – Wandelt Google-Sheets-Daten in Laravel-Collections um. Array-Verarbeitung wird einfach.
  • Erweiterbarkeit – Über das Macro-System lassen sich benutzerdefinierte Methoden zur Facade hinzufügen.
  • Google-Drive-Integration – Verwaltung und Auflistung von Spreadsheets

Typische Anwendungsfälle

  • Nutzer-Dashboards – Daten aus Google Sheets anzeigen und bearbeiten
  • Datenimport/-export – Massendatentransfer zwischen Laravel-Anwendung und Google Sheets
  • Automatisierte Berichte – Reports programmatisch erzeugen und aktualisieren
  • Multi-Nutzer-Anwendungen – Nutzer verwalten jeweils eigene Google Sheets

Designphilosophie

Der Hauptzweck dieses Pakets ist das Lesen aus Google Sheets. Anstatt vor dem Lesen viele Filterkriterien festzulegen, werden zunächst alle Daten als Laravel-Collection geladen und danach in Laravel weiterverarbeitet.

Systemvoraussetzungen

  • PHP >= 8.3
  • Laravel >= 12.0

Installation

1

Über Composer installieren

composer require revolution/laravel-google-sheets
2

Konfigurationsdatei veröffentlichen

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

Google-APIs aktivieren

Aktivieren Sie in der Google Cloud Console die folgenden APIs:
  • Google Sheets API
  • Google Drive API
4

Authentifizierungsverfahren auswählen und konfigurieren

Wählen Sie eines der drei Verfahren:
  • Service Account – Für Server-zu-Server-Kommunikation und Automatisierung
  • OAuth 2.0 – Für nutzerspezifischen Zugriff
  • API-Key – Nur für öffentliche Daten

Auswahl des Authentifizierungsverfahrens

VerfahrenAnwendungNutzeraktionZugriffsbereichSchwierigkeit
Service AccountServer-zu-Server-Kommunikation und AutomatisierungNicht nötigFreigegebene SpreadsheetsMittel
OAuth 2.0Nutzer-orientierte AnwendungenZustimmung erforderlichNutzerspezifische SheetsHoch
API-KeyNur öffentliche DatenNicht nötigNur öffentliche SpreadsheetsNiedrig

Grundlegende Verwendung

Betrachten Sie folgendes Spreadsheet-Beispiel:
idnamemail
1name1mail1
2name2mail2
Spreadsheet-URL: https://docs.google.com/spreadsheets/d/{spreadsheetID}/... Die spreadsheetId entnehmen Sie der URL.

Service Account

Bei Verwendung eines Service Accounts ist keine Token-Konfiguration erforderlich.
use Revolution\Google\Sheets\Facades\Sheets;

// Die Service-Account-Authentifizierung erfolgt bei der Konfiguration automatisch
$values = Sheets::spreadsheet('spreadsheetId')->sheet('Sheet 1')->all();
// [
//   ['id', 'name', 'mail'],
//   ['1', 'name1', 'mail1'],
//   ['2', 'name2', 'mail2']
// ]

OAuth

Bei OAuth-Authentifizierung müssen Sie das Access-Token des Nutzers setzen.
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() gibt ein Array zurück
$values = Sheets::setAccessToken($token)->spreadsheet('spreadsheetId')->sheet('Sheet 1')->all();
// [
//   ['id', 'name', 'mail'],
//   ['1', 'name1', 'mail1'],
//   ['2', 'name1', 'mail2']
// ]

Sheet-Werte mit Header als Schlüssel abrufen (empfohlen)

Die Umwandlung in eine Collection ist einfach und die weitere Verarbeitung flexibel – wir empfehlen dieses Vorgehen.
use Revolution\Google\Sheets\Facades\Sheets;

// get() gibt eine Laravel-Collection zurück
$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

Verwendung der A1-Notation

use Revolution\Google\Sheets\Facades\Sheets;

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

Zur A1-Notation

Die A1-Notation ist die Standardmethode in Google Sheets, um Zellen oder Bereiche zu benennen (z. B. „A1”, „A1:B2”).
  • „A1” bezeichnet die Zelle in Spalte A, Zeile 1.
  • „A1:B2” bezeichnet den Bereich (rechteckig) von Zelle A1 bis B2.
  • „A:B” bezeichnet alle Zeilen der Spalten A und B.
Wenn Sie mit der A1-Notation nicht vertraut sind oder der Bereich dynamisch oder komplex ist, ist es oft einfacher, zuerst alle Daten zu laden und dann mit Laravel-Collections weiter zu verarbeiten oder zu filtern.

Nächste Schritte

Live-Demo

Sehen Sie sich die tatsächliche Funktionsweise in der Laravel-Google-Sheets-Demo an.
Zuletzt geändert am 13. Juli 2026