Pisanie podstawowe

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 do innego 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 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 zostaje 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

Oto instrukcje zaczynające się 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