Obsługa Google Sheets w PHP – Dodawanie, Usuwanie i Edycja Rekordów
Google Sheets API pozwala na interakcję z arkuszami kalkulacyjnymi bezpośrednio z poziomu PHP. W tym artykule pokażę, jak za pomocą PHP dodawać, edytować i usuwać rekordy w Google Sheets.
1️⃣ Konfiguracja Google API w PHP
Najpierw musimy zainstalować klienta Google API oraz uzyskać klucz JSON do autoryzacji.
composer require google/apiclient
Jeśli nie możesz użyć composer, musisz pobrać bibliotekę ręcznie z repozytorium Google API Client.
2️⃣ Podstawowe funkcje PHP do obsługi Google Sheets
Najpierw konfigurujemy połączenie z API:
require_once 'google-api-php-client/vendor/autoload.php';
use Google\Client;
use Google\Service\Sheets;
function getClient() {
$client = new Client();
$client->setAuthConfig('sciezka/do/twojego-pliku.json');
$client->setScopes([Sheets::SPREADSHEETS]);
return new Sheets($client);
}
📌 Pobieranie wszystkich rekordów
function getRecords() {
global $spreadsheetId, $range;
$service = getClient();
$response = $service->spreadsheets_values->get($spreadsheetId, $range);
return $response->getValues() ?: [];
}
📌 Pobieranie 10 ostatnich rekordów
function getLastTenRecords() {
$records = getRecords();
return array_slice($records, -10);
}
📌 Dodawanie nowego rekordu
function addRecord($data) {
global $spreadsheetId, $range;
$service = getClient();
$body = new Google\Service\Sheets\ValueRange(['values' => [$data]]);
$params = ['valueInputOption' => 'RAW'];
$service->spreadsheets_values->append($spreadsheetId, $range, $body, $params);
return "Rekord dodany!";
}
📌 Edycja rekordu
function editRecord($rowIndex, $data) {
global $spreadsheetId;
$range = "mycia!A{$rowIndex}:Z{$rowIndex}";
$service = getClient();
$body = new Google\Service\Sheets\ValueRange(['values' => [$data]]);
$params = ['valueInputOption' => 'RAW'];
$service->spreadsheets_values->update($spreadsheetId, $range, $body, $params);
return "Rekord w wierszu {$rowIndex} zaktualizowany!";
}
📌 Usuwanie rekordu i przesuwanie wierszy
function deleteRecord($rowIndex) {
global $spreadsheetId, $range;
$service = getClient();
$response = $service->spreadsheets_values->get($spreadsheetId, $range);
$values = $response->getValues();
if (empty($values) || $rowIndex <= 1 || $rowIndex > count($values)) {
return "Nieprawidłowy numer wiersza lub pusty arkusz!";
}
array_splice($values, $rowIndex - 1, 1);
if (empty($values)) {
$values = [[]];
}
$body = new Google\Service\Sheets\ValueRange(['values' => $values]);
$params = ['valueInputOption' => 'RAW'];
$service->spreadsheets_values->update($spreadsheetId, $range, $body, $params);
return "Rekord w wierszu {$rowIndex} usunięty i dane przesunięte w górę!";
}
🔧 Jak używać?
Aby dodać nowy rekord:
echo addRecord(["Jan", "Kowalski", "jan@example.com"]);
Aby edytować 2. wiersz:
echo editRecord(2, ["Anna", "Nowak", "anna@example.com"]);
Aby usunąć 3. wiersz:
echo deleteRecord(3);
Podsumowanie
Google Sheets API umożliwia dynamiczne zarządzanie arkuszami. Poprawiona funkcja deleteRecord() pozwala nie tylko usunąć wiersz, ale także przesunąć pozostałe dane w górę, eliminując puste wiersze.
Masz pytania? Daj znać w komentarzach! 🚀
Komentarze
Prześlij komentarz