Interfejs API Arkuszy Google umożliwia zapisywanie wartości i formuł w komórkach, zakresach
zestawów zakresów i całych arkuszy. Przykłady na tej stronie pokazują,
typowe operacje zapisu można wykonać za pomocą
spreadsheets.values
w interfejsie Arkuszy API.
Pamiętaj, że możesz też zapisywać wartości komórek za pomocą funkcji
spreadsheet.batchUpdate
, co może być przydatne, jeśli chcesz jednocześnie zaktualizować formatowanie komórki
lub innych właściwościach
spreadsheets.values
nie wpływa na zmiany. Jeśli na przykład chcesz skopiować zakres komórek z
z jednego arkusza na drugi przy jednoczesnym zastępowaniu zarówno formuły komórki, jak i komórki.
formatowania, możesz użyć funkcji
UpdateCellsRequest
z
spreadsheet.batchUpdate
Jednak w przypadku prostych zapisów wartości łatwiej jest użyć funkcji
spreadsheets.values.update
lub
spreadsheets.values.batchUpdate
.
Przykłady te są przedstawione w formie żądań HTTP, które stanowią język. i nie mam zdania. Aby dowiedzieć się, jak implementować zapisy w różnych językach za pomocą bibliotek klienckich interfejsów API Google, przeczytaj artykuł Odczyt zapisz komórkę .
W tych przykładach symbol zastępczy SPREADSHEET_ID
wskazuje
w którym można podać arkusz kalkulacyjny
ID, które można znaleźć w
arkusza kalkulacyjnego. Zakresy zapisu określa się za pomocą funkcji A1
. Przykładowy zakres to Arkusz1!A1:D5.
Wpisz jeden zakres
Nowy, pusty arkusz kalkulacyjny wygląda tak:
spreadsheets.values.update
przykładowy kod pokazuje, jak zapisać wartości w zakresie.
Zapytanie ValueInputOption
jest wymagany i określa, czy zapisane wartości są analizowane (w przypadku
(np. czy ciąg znaków jest przekształcany w datę).
Treść żądania to
ValueRange
obiekt opisujący wartości zakresu do zapisania.
Pole majorDimension
wskazuje, że tablice są listami wartości uporządkowanych według wierszy. Istniejące wartości
w zakresie docelowym zostają zastąpione.
Protokół żądania jest widoczny poniżej.
PUT https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID
/values/Sheet1!A1:D5?valueInputOption=VALUE_INPUT_OPTION
{ "range": "Sheet1!A1:D5", "majorDimension": "ROWS", "values": [ ["Item", "Cost", "Stocked", "Ship Date"], ["Wheel", "$20.50", "4", "3/1/2016"], ["Door", "$15", "2", "3/15/2016"], ["Engine", "$100", "1", "3/20/2016"], ["Totals", "=SUM(B2:B4)", "=SUM(C2:C4)", "=MAX(D2:D4)"] ], }
Odpowiedź składa się z
UpdateValuesResponse
taki jak ten:
{
"spreadsheetId": SPREADSHEET_ID
,
"updatedRange": "Sheet1!A1:D5",
"updatedRows": 5,
"updatedColumns": 4,
"updatedCells": 20,
}
Wynikowy arkusz będzie wyglądał tak:
A | B | C | D | |
1 | Element | Koszt | W magazynie | Data wysyłki |
2 | Diabelski młyn | 20,50 PLN | 4 | 01.03.2016 r. |
3 | Drzwi | 15 | 2 | 15.03.2016 r. |
4 | Silnik | 100 zł | 1 | 20.03.2016 r. |
5 | Sumy | 135,50 PLN | 7 | 20.03.2016 r. |
Zapisz wybiórczo w zakresie
Przy zapisywaniu wartości w zakresie można uniknąć zmiany niektórych istniejących wartości
komórek, ustawiając odpowiednie elementy tablicy na null
. Jest również możliwe
aby wyczyścić komórkę, wpisując w niej pusty ciąg (""
).
Zacznij od arkusza zawierającego te same dane, które zostały wygenerowane za pomocą powyższych instrukcji.
ten fragment
spreadsheets.values.update
przykładowy kod pokazuje, jak selektywnie zapisywać wartości w zakresie B1:D4
pozostawienie niektórych komórek bez zmian i wyczyszczenie innych.
Zapytanie ValueInputOption
jest wymagany i określa, czy zapisane wartości są analizowane (w przypadku
(np. czy ciąg znaków jest przekształcany w datę).
Treść żądania to
ValueRange
obiekt opisujący wartości zakresu do zapisania.
Pole majorDimension
wskazuje, że tablice są listami wartości uporządkowanych według kolumn.
Protokół żądania jest widoczny poniżej.
PUT https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID
/values/Sheet1!B1?valueInputOption=VALUE_INPUT_OPTION
{ "range": "Sheet1!B1", "majorDimension": "COLUMNS", "values": [ [null,"$1","$2", ""], [], [null,"4/1/2016", "4/15/2016", ""] ] }
W polu values
znajduje się lista zmian wprowadzonych w każdej kolumnie w zakresie.
pierwsza tablica wskazuje, że wartość B1 powinna pozostać bez zmian (ze względu na tablicę null
), a B4 (pusty ciąg znaków). B2 i B3 mają swoje wartości
Zaktualizowano. Trzecia tablica wykonuje te same operacje na kolumnie D, natomiast
druga pusta tablica wskazuje, że kolumna C pozostanie bez zmian.
Odpowiedź składa się z
UpdateValuesResponse
taki jak ten:
{
"spreadsheetId": SPREADSHEET_ID
,
"updatedRange": "Sheet1!B1:D5",
"updatedRows": 3,
"updatedColumns": 2,
"updatedCells": 6,
}
Wynikowy arkusz będzie wyglądał tak:
A | B | C | D | |
1 | Element | Koszt | W magazynie | Data wysyłki |
2 | Diabelski młyn | 1 USD | 4 | 01.04.2016 r. |
3 | Drzwi | 2 PLN | 2 | 15.04.2016 r. |
4 | Silnik | 1 | ||
5 | Sumy | 3 USD | 7 | 15.04.2016 r. |
Pamiętaj, że w kolumnie „Sumy” choć nie został on zmieniony bezpośrednio przez to żądanie, zmieni się, ponieważ jej komórki zawierają formuły zależne od zmienionych komórek.
Zapisz w wielu zakresach
Począwszy od pustego arkusza:
spreadsheets.values.batchUpdate
przykładowy kod pokazuje, jak zapisać wartości w zakresach Sheet1!A1:A4 i
Arkusz1!B1:D2. Dotychczasowe wartości w zakresie docelowym zostaną zastąpione. Żądanie
ciało składa się z
ValueInputOption
obiektem, który
pokazuje, jak interpretować dane wejściowe i tablicę
ValueRange
obiektów odpowiadających każdemu zapisanym zakresom.
Pole majorDimension
określa, czy uwzględnione tablice są interpretowane jako tablice kolumn czy wierszy.
Protokół żądania jest widoczny poniżej.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID
/values:batchUpdate
{ "valueInputOption": "VALUE_INPUT_OPTION", "data": [ { "range": "Sheet1!A1:A4", "majorDimension": "COLUMNS", "values": [ ["Item", "Wheel", "Door", "Engine"] ] }, { "range": "Sheet1!B1:D2", "majorDimension": "ROWS", "values": [ ["Cost", "Stocked", "Ship Date"], ["$20.50", "4", "3/1/2016"] ] } ] }
Odpowiedź składa się z obiektu z listą zaktualizowanych statystyk komórek
i tablica
UpdateValuesResponse
po jednym na każdy zaktualizowany zakres. Na przykład:
{ "spreadsheetId":SPREADSHEET_ID
, "totalUpdatedRows": 4, "totalUpdatedColumns": 4, "totalUpdatedCells": 10, "totalUpdatedSheets": 1, "responses": [ { "spreadsheetId":SPREADSHEET_ID
, "updatedRange": "Sheet1!A1:A4", "updatedRows": 4, "updatedColumns": 1, "updatedCells": 4, }, { "spreadsheetId":SPREADSHEET_ID
, "updatedRange": "Sheet1!B1:D2", "updatedRows": 2, "updatedColumns": 3, "updatedCells": 6, } ], }
Wynikowy arkusz będzie wyglądał tak:
A | B | C | D | |
1 | Element | Koszt | W magazynie | Data wysyłki |
2 | Diabelski młyn | 20,50 PLN | 4 | 01.03.2016 r. |
3 | Drzwi | |||
4 | Silnik | |||
5 |
Zapisuj wartości bez ich analizowania
Począwszy od pustego arkusza:
spreadsheets.values.update
przykładowy kod pokazuje, jak zapisać wartości w zakresie Sheet1!A1:E1, ale korzysta z funkcji
RAW
ValueInputOption
parametru zapytania, aby zapobiec przeanalizowaniu zapisanych ciągów znaków jako formuł,
wartości logiczne czy liczby. Pojawiają się jako ciągi znaków, a wyrównanie tekstu jest wyjustowane
w arkuszu.
Treść żądania to
ValueRange
obiekt opisujący wartości zakresu do zapisania.
Pole majorDimension
wskazuje, że tablice są listami wartości uporządkowanych według wierszy. Istniejące wartości
w zakresie docelowym zostają zastąpione.
Protokół żądania jest widoczny poniżej.
PUT https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID
/values/Sheet1!A1:E1?valueInputOption=RAW
{ "range": "Sheet1!A1:E1", "majorDimension": "ROWS", "values": [ ["Data", 123.45, true, "=MAX(D2:D4)", "10"] ], }
Odpowiedź składa się z
UpdateValuesResponse
taki jak ten:
{
"spreadsheetId": SPREADSHEET_ID
,
"updatedRange": "Sheet1!A1:E1",
"updatedRows": 1,
"updatedColumns": 5,
"updatedCells": 5,
}
Wynikowy arkusz będzie wyglądał tak:
A | B | C | D | E | |
1 | Dane | 123,45 | PRAWDA | =MAX(D2:D4) | 10 |
2 |
Pamiętaj, że „TRUE” jest wyśrodkowany i jest wartością logiczną, natomiast „123,45” ma rację jest uzasadniona, ponieważ jest liczbą, a „10” jest uzasadniona, ponieważ ciągu znaków. Formuła nie jest analizowana i wyświetla się jako ciąg znaków.
Dołącz wartości
Zacznij od arkusza podobnego do tej w tabeli poniżej:
A | B | C | D | |
1 | Element | Koszt | W magazynie | Data wysyłki |
2 | Diabelski młyn | 20,50 PLN | 4 | 01.03.2016 r. |
3 |
Poniżej
spreadsheets.values.append
przykładowy kod pokazuje, jak dodać 2 nowe wiersze wartości, zaczynając od wiersza 3.
Zapytanie ValueInputOption
jest wymagany i określa, czy zapisane wartości są analizowane (w przypadku
(np. czy ciąg znaków jest przekształcany w datę).
Treść żądania to
ValueRange
obiekt opisujący wartości zakresu do zapisania.
Pole majorDimension
wskazuje, że tablice są listami wartości uporządkowanych według wierszy.
Protokół żądania jest widoczny poniżej.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID
/values/Sheet1!A1:E1:append?valueInputOption=VALUE_INPUT_OPTION
{ "range": "Sheet1!A1:E1", "majorDimension": "ROWS", "values": [ ["Door", "$15", "2", "3/15/2016"], ["Engine", "$100", "1", "3/20/2016"], ], }
Odpowiedź składa się z
AppendValuesResponse
taki jak ten:
{ "spreadsheetId":SPREADSHEET_ID
, "tableRange": "Sheet1!A1:D2", "updates": { "spreadsheetId":SPREADSHEET_ID
, "updatedRange": "Sheet1!A3:D4", "updatedRows": 2, "updatedColumns": 4, "updatedCells": 8, } }
Wynikowy arkusz będzie wyglądał tak:
A | B | C | D | |
1 | Element | Koszt | W magazynie | Data wysyłki |
2 | Diabelski młyn | 20,50 PLN | 4 | 01.03.2016 r. |
3 | Drzwi | 15 | 2 | 15.03.2016 r. |
4 | Silnik | 100 zł | 1 | 20.03.2016 r. |
5 |