> ## Documentation Index
> Fetch the complete documentation index at: https://kawax.biz/llms.txt
> Use this file to discover all available pages before exploring further.

# Google Sheets API for Laravel

> Google Sheets API v4 in Laravel verwenden. Flüssige und intuitive Schnittstelle.

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

<Steps>
  <Step title="Über Composer installieren">
    ```bash theme={null}
    composer require revolution/laravel-google-sheets
    ```
  </Step>

  <Step title="Konfigurationsdatei veröffentlichen">
    ```bash theme={null}
    php artisan vendor:publish --tag="google-config"
    ```
  </Step>

  <Step title="Google-APIs aktivieren">
    Aktivieren Sie in der [Google Cloud Console](https://console.cloud.google.com/) die folgenden APIs:

    * **Google Sheets API**
    * **Google Drive API**
  </Step>

  <Step title="Authentifizierungsverfahren auswählen und konfigurieren">
    Wählen Sie eines der drei Verfahren:

    * [Service Account](/de/packages/laravel-google-sheets/service-account) – Für Server-zu-Server-Kommunikation und Automatisierung
    * [OAuth 2.0](/de/packages/laravel-google-sheets/oauth) – Für nutzerspezifischen Zugriff
    * API-Key – Nur für öffentliche Daten
  </Step>
</Steps>

## Auswahl des Authentifizierungsverfahrens

| Verfahren           | Anwendung                                          | Nutzeraktion            | Zugriffsbereich              | Schwierigkeit |
| ------------------- | -------------------------------------------------- | ----------------------- | ---------------------------- | ------------- |
| **Service Account** | Server-zu-Server-Kommunikation und Automatisierung | Nicht nötig             | Freigegebene Spreadsheets    | Mittel        |
| **OAuth 2.0**       | Nutzer-orientierte Anwendungen                     | Zustimmung erforderlich | Nutzerspezifische Sheets     | Hoch          |
| **API-Key**         | Nur öffentliche Daten                              | Nicht nötig             | Nur öffentliche Spreadsheets | Niedrig       |

## Grundlegende Verwendung

Betrachten Sie folgendes Spreadsheet-Beispiel:

| id | name  | mail  |
| -- | ----- | ----- |
| 1  | name1 | mail1 |
| 2  | name2 | mail2 |

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.

```php theme={null}
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.

```php theme={null}
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.

```php theme={null}
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

```php theme={null}
@foreach($values as $value)
  {{ data_get($value, 'name') }}
@endforeach
```

### Verwendung der A1-Notation

```php theme={null}
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

* [Service-Account-Authentifizierung](/de/packages/laravel-google-sheets/service-account) – Die gebräuchlichste Methode
* [OAuth-2.0-Authentifizierung](/de/packages/laravel-google-sheets/oauth) – Nutzerspezifischer Zugriff
* [laravel-google-sheets](https://github.com/invokable/laravel-google-sheets)
* [Demo-Projekt](https://github.com/invokable/google-sheets-project) – Beispiele von Laravel 5.5 bis 13
* [Verwandtes Paket: Google Search Console API for Laravel](https://github.com/invokable/laravel-google-searchconsole)

## Live-Demo

Sehen Sie sich die tatsächliche Funktionsweise in der [Laravel-Google-Sheets-Demo](https://sheets.kawax.biz/) an.


## Related topics

- [OAuth-2.0-Authentifizierung - Google Sheets API for Laravel](/de/packages/laravel-google-sheets/oauth.md)
- [Service-Account-Authentifizierung - Google Sheets API für Laravel](/de/packages/laravel-google-sheets/service-account.md)
- [Laravel Console Starter](/de/packages/laravel-console-starter/index.md)
- [Laravel Socialite (Social Authentication)](/de/socialite.md)
- [Laravel Cashier (Stripe)](/de/cashier.md)
