W tym dokumencie opisano podstawy korzystania z zasobu
spreadsheets.values.
Arkusz kalkulacyjny może mieć wiele arkuszy, a każdy z nich może zawierać dowolną liczbę wierszy lub kolumn. Komórka to miejsce na przecięciu określonego wiersza i kolumny, które może zawierać wartość danych. Interfejs Google Sheets API udostępnia zasób spreadsheets.values, który umożliwia odczytywanie i zapisywanie wartości.
Jeśli chcesz wstawić wiersze lub zaktualizować formatowanie i inne właściwości arkusza, musisz użyć metody batchUpdate zasobu spreadsheets, zgodnie z opisem w artykule Aktualizowanie arkuszy kalkulacyjnych.
Metody zasobów
Zasób spreadsheets.values udostępnia te metody odczytu i zapisu wartości, z których każda służy do określonego zadania:
| Dostęp do zakresu | Czytanie | Pisanie |
|---|---|---|
| Pojedynczy zakres | spreadsheets.values.get |
spreadsheets.values.update |
| Wiele zakresów | spreadsheets.values.batchGet |
spreadsheets.values.batchUpdate |
| Dołączanie | spreadsheets.values.append |
Ogólnie warto łączyć wiele odczytów lub aktualizacji z metodami batchGet i batchUpdate (odpowiednio), ponieważ zwiększa to wydajność.
Przykłady kodu każdej z tych metod znajdziesz na stronach z przykładami podstawowego odczytu i podstawowego zapisu. Aby zobaczyć wszystkie przykłady kodu, otwórz stronę z omówieniem przykładów.
Odczytywanie wartości komórek
Aby odczytać wartości danych z arkusza, potrzebujesz identyfikatora arkusza kalkulacyjnego i notacji A1 dla zakresu. Określenie zakresu bez identyfikatora arkusza (A1:B2) oznacza, że żądanie zostanie wykonane w pierwszym arkuszu w arkuszu kalkulacyjnym. Więcej informacji o identyfikatorach arkuszy kalkulacyjnych i notacji A1 znajdziesz w artykule Przegląd interfejsu Google Sheets API.
Format danych wyjściowych kontrolują te opcjonalne parametry zapytania:
| Parametr formatu | Wartość domyślna |
|---|---|
majorDimension |
WIERSZE |
valueRenderOption |
FORMATTED_VALUE |
dateTimeRenderOption |
SERIAL_NUMBER |
Pamiętaj, że dateTimeRenderOption należy używać tylko wtedy, gdy valueRenderOption nie jest FORMATTED_VALUE.
Nie ma wyraźnego limitu ilości zwracanych danych. Błędy nie zwracają żadnych danych. Puste wiersze i kolumny na końcu są pomijane.
Metody pobierania pojedynczych i grupowych danych są opisane w kolejnych sekcjach. Więcej przykładów kodu podstawowych operacji odczytu znajdziesz w sekcji Podstawowe odczytywanie.
Odczytywanie wartości z jednego zakresu
Aby odczytać pojedynczy zakres wartości z arkusza kalkulacyjnego, użyj żądania
spreadsheets.values.get:
Google Apps Script
Java
JavaScript
Node.js
PHP
Python
Ruby
Odpowiedź na to żądanie jest zwracana jako obiekt ValueRange, który jest częścią zasobu spreadsheets.values.
Odczytywanie wartości z wielu zakresów
Aby odczytać z arkusza kalkulacyjnego wiele nieciągłych zakresów wartości, użyj żądania
spreadsheets.values.batchGet, które umożliwia określenie kilku zakresów do pobrania:
Google Apps Script
Java
JavaScript
Node.js
PHP
Python
Ruby
Odpowiedź na to żądanie jest zwracana jako obiekt BatchGetValuesResponse, który zawiera spreadsheetId i listę obiektów ValueRange.
Zapisywanie wartości komórek
Aby zapisać dane w arkuszu, potrzebujesz identyfikatora arkusza kalkulacyjnego, zakresu komórek w notacji A1 i danych, które chcesz zapisać w odpowiednim obiekcie treści żądania. Więcej informacji o identyfikatorach arkuszy kalkulacyjnych i notacji A1 znajdziesz w artykule Omówienie interfejsu Google Sheets API.
Kilka parametrów zapytania kontroluje sposób zapisywania danych i formatowania odpowiedzi:
| Parametr zapisu | Wartość domyślna |
|---|---|
valueInputOption |
(Wymagane) |
includeValuesInResponse |
false |
responseValueRenderOption |
FORMATTED_VALUE |
responseDateTimeRenderOption |
SERIAL_NUMBER |
Wymagany parametr valueInputOption określa sposób interpretacji danych wejściowych. (W przypadku aktualizacji zbiorczych ten parametr jest określany w treści żądania). Obsługiwane opcje zostały opisane w tej tabeli:
ValueInputOption |
Opis |
|---|---|
RAW |
Dane wejściowe nie są analizowane i są wstawiane jako ciąg znaków. Na przykład wpisanie „=1+2” umieści w komórce ciąg znaków „=1+2”, a nie formułę. (Wartości inne niż ciągi tekstowe, np. wartości logiczne lub liczby, są zawsze traktowane jako RAW). |
USER_ENTERED |
Dane wejściowe są analizowane dokładnie tak, jakby zostały wpisane w interfejsie Arkuszy. Na przykład „1 marca 2016 r.” stanie się datą, a „=1+2” – formułą. Formaty można też wywnioskować, więc „100,15 zł” staje się liczbą z formatowaniem waluty. |
Pamiętaj, że responseDateTimeRenderOption należy używać tylko wtedy, gdy responseValueRenderOption nie jest FORMATTED_VALUE.
Metody aktualizacji pojedynczej i zbiorczej opisujemy w sekcjach poniżej. Więcej przykładów kodu podstawowych operacji zapisu znajdziesz w artykule Podstawowe operacje zapisu.
Zapisywanie wartości w jednym zakresie
Aby zapisać dane w jednym zakresie, użyj żądania:spreadsheets.values.update
Google Apps Script
Java
JavaScript
Node.js
PHP
Python
Ruby
Treść żądania aktualizacji musi być obiektem ValueRange, ale jedynym wymaganym polem jest values. Jeśli podasz wartość range, musi ona być zgodna z zakresem w adresie URL. W ValueRange możesz opcjonalnie określić majorDimension.
Domyślnie używany jest znak ROWS. Jeśli podasz COLUMNS, każda tablica wewnętrzna zostanie zapisana w kolumnie zamiast w wierszu.
Podczas aktualizacji wartości bez danych są pomijane. Aby wyczyścić dane, użyj pustego ciągu znaków („”). Możesz też wyczyścić wartości z wielu zakresów bez ich zastępowania, korzystając z metody spreadsheets.values.batchClear.
Jeśli używasz metadanych dewelopera, zapoznaj się z przewodnikiem po metadanych dewelopera, aby dowiedzieć się, jak używać filtrów danych do odczytywania, aktualizowania lub czyszczenia wartości za pomocą metod spreadsheets.values.batchGetByDataFilter, spreadsheets.values.batchUpdateByDataFilter i spreadsheets.values.batchClearByDataFilter.
Zapisywanie wartości w wielu zakresach
Jeśli chcesz zapisać kilka nieciągłych zakresów, możesz użyć tego
spreadsheets.values.batchUpdate
żądania:
Google Apps Script
Java
JavaScript
Node.js
PHP
Python
Ruby
Treść żądania aktualizacji zbiorczej musi być obiektem BatchUpdateValuesRequest, który zawiera ValueInputOption i listę obiektów ValueRange (po jednym dla każdego zapisanego zakresu). Każdy obiekt ValueRange określa własne range, majorDimension i dane wejściowe.
Dołączanie wartości
Aby dodać dane po tabeli danych w arkuszu, użyj żądania
spreadsheets.values.append:
Google Apps Script
Java
JavaScript
Node.js
PHP
Python
Ruby
Treść żądania aktualizacji musi być obiektem ValueRange, ale jedynym wymaganym polem jest values. Jeśli podasz wartość range, musi ona być zgodna z zakresem w adresie URL. W ValueRange możesz opcjonalnie określić majorDimension.
Domyślnie używany jest znak ROWS. Jeśli podasz COLUMNS, każda tablica wewnętrzna zostanie zapisana w kolumnie zamiast w wierszu.
Zakres wejściowy służy do wyszukiwania istniejących danych i znajdowania w nim „tabeli”. Wartości są dołączane do następnego wiersza tabeli, zaczynając od pierwszej kolumny. Na przykład rozważmy znak Sheet1, który wygląda tak:
| A | B | C | D | E | |
| 1 | x | y | Z | ||
| 2 | x | y | Z | ||
| 3 | |||||
| 4 | x | y | |||
| 5 | y | Z | |||
| 6 | x | y | Z | ||
| 7 |
Arkusz zawiera 2 tabele: A1:C2 i B4:D6. Dołączone wartości będą
zaczynać się od B7 w przypadku wszystkich tych danych wejściowych: range
Sheet1, ponieważ przeanalizuje wszystkie dane w arkuszu i stwierdzi, że tabela wB4:D6jest ostatnią tabelą.B4lubC5:D5, ponieważ oba te pola znajdują się w tabeliB4:D6.B2:D4, ponieważ ostatnią tabelą w zakresie jest tabelaB4:D6(mimo że zawiera ona też tabelęA1:C2).A3:G10, ponieważ ostatnią tabelą w zakresie jest tabelaB4:D6(mimo że zaczyna się przed nią i kończy po niej).
Poniższe dane wejściowe range nie zaczną się zapisywać o godzinie B7:
A1zacznie pisać odA3, ponieważ znajduje się ona w tabeliA1:C2.E4zacznie pisać odE4, ponieważ nie znajduje się ona w żadnej tabeli. (A4również zacznie pisać odA4z tych samych powodów).
Możesz też określić, czy chcesz zastąpić istniejące dane po tabeli, czy wstawić nowe wiersze dla nowych danych. Domyślnie dane wejściowe nadpisują dane znajdujące się za tabelą. Aby zapisać nowe dane w nowych wierszach, użyj
InsertDataOption
i określ insertDataOption=INSERT_ROWS.
Więcej informacji o limitach komórek i wierszy w Arkuszach znajdziesz w artykule Pliki, które możesz przechowywać na Dysku Google.