exs / googlesheets-bundle
This bundle manages Google Spreadsheets sheet operations using Google api.
Installs: 316
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 9
Forks: 2
Open Issues: 1
Type:symfony-bundle
Requires
- php: >=5.3.9
- google/apiclient: ^2.0
- symfony/symfony: ^2.7
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.7
- phpstan/phpstan: ^0.8.5
- phpunit/phpunit: ~4.8
This package is auto-updated.
Last update: 2025-01-29 05:50:09 UTC
README
Very simple wrapper for Google sheets integration
What is this bundle doing ?
This bundle provides basic Google API SpreadSheets Sheets Service methods as Symfony services.
Methods: Get|Create|Update|Clear|Delete
Installing the # EXS-GoogleSheetsBundle in a Symfony project
Edit composer.json file:
//composer.json //... "require": { //other bundles "exs/googlesheets-bundle": "^0.1" },
Save the file and have composer require the project via the command line:
composer require exs/simple-mongo-bundle
Update the app/AppKernel.php
//app/AppKernel.php //... public function registerBundles() { $bundles = array( //Other bundles new EXS\GoogleSheetsBundle\EXSGoogleSheetsBundle(), );
Usage
Configuration
-
Set your Google project and get the client secret file.
Click here to obtain your client secret and set project application name -
Save your client secret file as 'client_secret.json' in your project.
-
Add the client secret file location, project application name and credential location in the Symfony config file
exs_google_sheets: application_name: 'Google Sheets API' credentials: '%kernel.root_dir%/config/sheets.googleapis.com.json' client_secret: '%kernel.root_dir%/config/client_secret.json'
Your credentials will be create by the bundle once you set the file location in the bundle.
Default location: '/Credentials/sheets.googleapis.com.json'
Create the access token
Create the access token for google api.
- Execute the service via the command line.
The service will provide you the link to get a verification code.
app/console googlesheets:execute --function=token
- Copy the verification code from the link then enter it in the command line.
Inputs
id: Spreadsheets id
title: sheet(tab) title
header: number of rows for header.
data: 2 dimensional array for grid data.
$data = [ [ COL1_HEADER, COL2_HEADER, ...], [ ROW1COL1_CELL_VALUE, ROW1COL2_CELL_VALUE, ...], [ ROW1COL2_CELL_VALUE, ROW2COL2_CELL_VALUE, ...], .... ];
Methods
SETUP(Common for all methods).
Inject GoogleSheetsApiService or obtain it from the container.
ex) Set up an api client with the spreadsheets id that you want to manage.
$service = $this->getContainer()->get('exs_google_sheets.sheets_service'); $service->setSheetServices(YOUR_SPREADSHEETS_ID_HERE);
GET
Get an existing spreadsheets
$spreadsheets = $service->getGoogleSpreadSheets();
CREATE
Create the new sheet in Google Spreadsheets.
Return: Number of data rows that are inserted to the new sheet.
If you call the function without data, it will create an empty sheet.
ex) Create the new sheet with data
$sheetTitle = 'my test sheet'; $data = [ [ COL1_HEADER, COL2_HEADER, ...], [ ROW1COL1_CELL_VALUE, ROW1COL2_CELL_VALUE, ...], .... ]; $response = $service->createNewSheet($sheetTitle, $data);
UPDATE
Update the existing spreadsheets sheet.
Return: Number of data rows that are updated to the sheet.
If you wants to update only cell values, not the header, define number of rows for the header.
ex) Update grid data values only.
$header = 1; $sheetTitle = 'my test sheet'; $data = [ [ ROW1COL1_CELL_VALUE, ROW1COL2_CELL_VALUE, ...], [ ROW2COL1_CELL_VALUE, ROW2COL2_CELL_VALUE, ...], .... ]; $response = $service->updateSheet($sheetTitle, $data, $header);
CLEAR
Clear the entire sheet values.
Return: number of rows that are cleared.
$sheetTitle = 'my test sheet'; $response = $service->clearSheetByTitle($sheetTitle);
DELETE
Delete the existing sheet in the spreadsheets.
Return: Boolean
$sheetTitle = 'my test sheet'; $response = $service->deleteSheetByTitle($sheetTitle);
Example
Create the new sheet with header then update it with data
// setup the service $service = $this->getContainer()->get('exs_google_sheets.sheets_service'); $service->setSheetServices(YOUR_SPREADSHEETS_ID_HERE); // create the sheet $sheetTitle = 'my test sheet'; $data = [ [ COL1_HEADER, COL2_HEADER, COL3_HEADER] ]; $service->createNewSheet($sheetTitle, $data); // update grid data $header = 1; $data = [ [ ROW1COL1_CELL_VALUE, ROW1COL2_CELL_VALUE, ROW1COL3_CELL_VALUE], [ ROW2COL1_CELL_VALUE, ROW2COL2_CELL_VALUE, ROW2COL3_CELL_VALUE], [ ROW3COL1_CELL_VALUE, ROW3COL2_CELL_VALUE, ROW3COL3_CELL_VALUE], [ ROW4COL1_CELL_VALUE, ROW4COL2_CELL_VALUE, ROW4COL3_CELL_VALUE] ]; $service->updateSheet($sheetTitle, $data, $header);
Contributing
Anyone and everyone is welcome to contribute.
If you have any questions or suggestions please let us know.