Google Spreadsheet Client for PHP
Google Spreadsheet Client for PHP. This requires "google/apiclient" package.
Get started
1. Get key file
- Log in Google Developper Console
- Create new project
- Create Service Account credentials in the project
- Download key file as JSON
2. Create spreadsheet
- Create a new spreadsheet in Google Drive
- Authorize the email address, which is found as "client_email" in key file, to read and edit.
- Save the file ID from address bar.
3. Access by PHP
$client = Google_Spreadsheet::getClient("the/path/to/credential.json");
// Get the file by file ID
$file = $client->file("XXXxxxXXXXxxxXXXX");
// Get the sheet by title
$sheet = $file->sheet("Sheet1");
// Flush all rows in the sheet
var_dump($sheet->items);
Usage
Select rows
// Array
$items = $sheet->select(array("id" => "1"));
// Closure
$items = $sheet->select(function($row){
return (int) $row["age"] < 30;
});
Insert a new row
$sheet->insert(array(
"name" => "John",
"age" => 23,
"email" => "john@example.com"
));
Update column's value
$sheet->update(
8, // row number
"name", // field's name (or column number as Integer)
"Tom"
);
$sheet->update(
array(8,16,24), // row numbers
"name",
"Tom"
);
$sheet->update(
array(
"name" => "Tom" // condition to select
),
"email",
"tom@example.com"
);
$sheet->update(
function($row){
return (int) $row["age"] > 80; // condition to select as closure
},
"active",
"false"
);
Get up-to-date table data
$items = $sheet->fetch(true)->items;
Save cache
$client->config(array(
"cache" => true,
"cache_dir" => "cache",
"cache_expires" => 3600
));
Get CSV
$client = Google_Spreadsheet::getClient("the/path/to/credential.json");
// Get the file by file ID
$file = $client->file("XXXxxxXXXXxxxXXXX");
// Get the sheet by title
$sheet = $file->sheet("Sheet1");
// Dump CSV
var_dump($sheet->csv());
Requirement
- google/apiclient (Apache License v2.0)