composer require asimlqt/php-google-spreadsheet-client
1. Ir a https://console.developers.google.com/
2. Crear un nuevo proyecto.
3. Habilitar la API de Google Drive API
4. Crear credenciales (crear una credencial de cuenta de servicio) y LO MAS IMPORTANTE cuando te salga el combo de opciones elegir "EDITAR"
5. Se te descargará un json con las credenciales el cual renombra como "client_secret.json"
Muy importante: en tu google drive tienes que dar permisos de compartir al fichero excel que quieras compartir para ello debes añadir la nueva cuenta de google que se te ha creado (por ejemplo: loquesea@xxxx-191012.iam.gserviceaccount.com)
Nuestro index.php será algo así como:
require 'vendor/autoload.php';
use Google\Spreadsheet\DefaultServiceRequest;
use Google\Spreadsheet\ServiceRequestFactory;
putenv('GOOGLE_APPLICATION_CREDENTIALS=client_secret.json');
$client = new Google_Client;
$client->useApplicationDefaultCredentials();
$client->setApplicationName("xxxxx");
$client->setScopes(['https://www.googleapis.com/auth/drive','https://spreadsheets.google.com/feeds']);
if ($client->isAccessTokenExpired()) {
$client->refreshTokenWithAssertion();
}
$accessToken = $client->fetchAccessTokenWithAssertion()["access_token"];
// echo "accessToken:".$accessToken;exit;
ServiceRequestFactory::setInstance(
new DefaultServiceRequest($accessToken)
);
$spreadsheetService = new Google\Spreadsheet\SpreadsheetService();
$spreadsheetFeed = $spreadsheetService->getSpreadsheetFeed();
// $spreadsheet = $spreadsheetFeed->getEntries();
$spreadsheet = $spreadsheetFeed->getByTitle('excel_lsg.xlsx');
// Prueba 1
// $spreadsheet->addWorksheet('Tres', 50, 20);
// Prueba 2
/*
$worksheetFeed = $spreadsheet->getWorksheetFeed();
$worksheet = $worksheetFeed->getByTitle('Tres');
$worksheet->delete();
*/
// Prueba 3
/*
$worksheetFeed = $spreadsheet->getWorksheetFeed();
$worksheet = $worksheetFeed->getByTitle('En un lugar de la mancha');
$listFeed = $worksheet->getListFeed();
foreach ($listFeed->getEntries() as $entry) {
$values = $entry->getValues();
print_r($values);
echo "<br>";
}
*/
// Prueba 4
$worksheetFeed = $spreadsheet->getWorksheetFeed();
$worksheet = $worksheetFeed->getByTitle('En un lugar de la mancha');
$listFeed = $worksheet->getListFeed();
$row = array('nombre'=>'John', 'edad'=>25); // nombre y edad es el nombre de la columna en la Fila 1
$listFeed->insert($row);
Más información en:
https://www.twilio.com/blog/2017/03/google-spreadsheets-and-php.html
https://packagist.org/packages/donhq/php-google-spreadsheet-client
No hay comentarios:
Publicar un comentario