Vai al contenuto principale
Pacchetto Laravel per Google Sheets API v4. Nasconde la complessità della libreria client PHP di Google e offre un’API con method chaining intuitiva ed espressiva.

Caratteristiche

  • Supporto di più metodi di autenticazione — OAuth 2.0 (accesso per singolo utente), Service Account (comunicazione server-to-server), API key (dati pubblici)
  • API fluente — manipola i dati in modo intuitivo con method chaining
  • Integrazione con le Laravel Collection — converte i dati di Google Sheets in Laravel Collection. Manipolazione degli array semplice
  • Estendibilità — puoi aggiungere metodi personalizzati alla facade tramite il sistema di macro
  • Integrazione con Google Drive — gestione ed elenco delle spreadsheet

Casi d’uso comuni

  • Dashboard utente — visualizza e manipola dati di Google Sheets
  • Import/Export di dati — spostamento di grandi quantità di dati tra app Laravel e Google Sheets
  • Generazione automatica di report — genera e aggiorna report programmaticamente
  • Applicazioni multi-utente — ogni utente gestisce il proprio Google Sheets

Filosofia di design

Lo scopo principale del pacchetto è leggere dati da Google Sheets. Invece di specificare condizioni fini prima della lettura, il design prevede di scaricare prima tutti i dati come Laravel Collection e poi elaborarli lato Laravel.

Requisiti di sistema

  • PHP >= 8.3
  • Laravel >= 12.0

Installazione

1

Installa con Composer

composer require revolution/laravel-google-sheets
2

Pubblica il file di configurazione

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

Abilita le API Google

Nella Google Cloud Console abilita le seguenti API:
  • Google Sheets API
  • Google Drive API
4

Scegli e configura il metodo di autenticazione

Scegli tra 3 metodi:
  • Service Account — per comunicazione server-to-server e task automatici
  • OAuth 2.0 — per accesso per singolo utente
  • API key — solo per dati pubblici

Scelta del metodo di autenticazione

MetodoUsoInterazione utenteAmbito di accessoDifficoltà
Service AccountServer-to-server, automazioneNon necessariaSpreadsheet condiviseMedia
OAuth 2.0App orientate agli utentiServe il consensoFogli del singolo utenteAlta
API keySolo dati pubbliciNon necessariaSolo spreadsheet pubblicheBassa

Uso base

Considera l’esempio della seguente struttura di spreadsheet.
idnamemail
1name1mail1
2name2mail2
URL della spreadsheet: https://docs.google.com/spreadsheets/d/{spreadsheetID}/... Prendi spreadsheetId dall’URL.

Service Account

Se usi l’autenticazione con Service Account, non serve impostare il token.
use Revolution\Google\Sheets\Facades\Sheets;

// L'autenticazione con Service Account avviene automaticamente in fase di configurazione
$values = Sheets::spreadsheet('spreadsheetId')->sheet('Sheet 1')->all();
// [
//   ['id', 'name', 'mail'],
//   ['1', 'name1', 'mail1'],
//   ['2', 'name2', 'mail2']
// ]

OAuth

Se usi l’autenticazione OAuth, devi impostare l’access token dell’utente.
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() restituisce un array
$values = Sheets::setAccessToken($token)->spreadsheet('spreadsheetId')->sheet('Sheet 1')->all();
// [
//   ['id', 'name', 'mail'],
//   ['1', 'name1', 'mail1'],
//   ['2', 'name1', 'mail2']
// ]

Recuperare i valori del foglio usando l’intestazione come chiave (consigliato)

La conversione in collection è semplice ed è più flessibile per l’elaborazione successiva, per cui è il metodo consigliato.
use Revolution\Google\Sheets\Facades\Sheets;

// get() restituisce una Laravel Collection
$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

Uso della notazione A1

use Revolution\Google\Sheets\Facades\Sheets;

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

Sulla notazione A1

La notazione A1 è il modo standard di specificare celle o intervalli in Google Sheets (es.: “A1”, “A1:B2”).
  • “A1” indica la cella nella colonna A, riga 1.
  • “A1:B2” indica l’intervallo (rettangolo) dalla cella A1 alla B2.
  • “A:B” indica tutte le righe delle colonne A e B.
Se non hai familiarità con la notazione A1, o se l’intervallo è dinamico o complesso, spesso è più semplice recuperare tutti i dati e poi filtrare/processare con le Laravel Collection.

Passi successivi

Demo live

Puoi vedere il funzionamento reale nella demo di Laravel Google Sheets.
Ultima modifica il 13 luglio 2026