Temel yazma

Google Sheets API; hücrelere, aralıklara, aralık kümelerine ve sayfaların tamamına değer ve formül yazmanıza olanak tanır. Bu sayfadaki örnekler, bazı yaygın yazma işlemlerinin Sheets API'nin spreadsheets.values kaynağıyla nasıl yapılabileceğini göstermektedir.

spreadsheet.batchUpdate yöntemini kullanarak hücre değerleri yazmanın da mümkün olduğunu unutmayın. Bu yöntem, spreadsheets.values kaynağının etkilemediği hücre biçimlendirmesini veya diğer özellikleri aynı anda güncellemek istiyorsanız yararlı olabilir. Örneğin, bir sayfadan diğerine bir hücre aralığını kopyalayıp hem hücre formülünün hem de hücre biçimlendirmesinin üzerine yazmak istiyorsanız UpdateCellsRequest yöntemini bir spreadsheet.batchUpdate ile kullanabilirsiniz.

Bununla birlikte, basit değer yazma işlemleri için spreadsheets.values.update veya spreadsheets.values.batchUpdate yöntemini kullanmak daha kolaydır.

Bu örnekler, dilsiz olması için HTTP istekleri biçiminde sunulur. Google API istemci kitaplıklarını kullanarak farklı dillerde yazma işlevini nasıl uygulayacağınızı öğrenmek için Hücre değerlerini okuma ve yazma bölümüne bakın.

Bu örneklerde SPREADSHEET_ID yer tutucusu, e-tablo URL'sinden keşfedilebilen e-tablo kimliğini nereye gireceğinizi belirtir. Yazılacak aralıklar A1 gösterimi kullanılarak belirtilir. Sayfa1!A1:D5 örnek olarak verilebilir.

Tek bir aralık yazma

Yeni ve boş bir e-postayla başlayan aşağıdaki spreadsheets.values.update kod örneğinde, değerlerin bir aralığa nasıl yazılacağı gösterilmektedir. ValueInputOption sorgu parametresi gereklidir ve yazılan değerlerin ayrıştırılıp ayrıştırılmadığını (ör. bir dizenin tarihe dönüştürülüp dönüştürülmediğini) belirler.

İsteğin gövdesi, yazılacak aralık değerlerini tanımlayan bir ValueRange nesnesidir. majorDimension alanı, dizilerin satırlara göre düzenlenmiş değer listeleri olduğunu belirtir. Hedef aralıktaki mevcut değerlerin üzerine yazılır.

İstek protokolü aşağıda gösterilmiştir.

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)"]
  ],
}

Yanıt, şuna benzer bir UpdateValuesResponse nesnesinden oluşur:

{
  "spreadsheetId": SPREADSHEET_ID,
  "updatedRange": "Sheet1!A1:D5",
  "updatedRows": 5,
  "updatedColumns": 4,
  "updatedCells": 20,
}

Elde edilen sayfa aşağıdaki gibi görünür:

CEVAP B C D
1 Öğe Maliyet Stokta Gönderim Tarihi
2 Dönme dolap 20,50 TL 4 01.03.2016
3 Kapı Hong Kong doları 2 15.03.2016
4 Motor Hong Kong doları 1 20.03.2016
5 Toplam 135,5 $ 7 20.03.2016

Aralığa seçmeyle yazma

Bir aralığa değer yazarken, karşılık gelen dizi öğelerini null şeklinde ayarlayarak mevcut bazı hücrelerin değiştirilmesini önlemek mümkündür. Hücreye boş dize ("") yazarak da hücreyi temizleyebilirsiniz.

Yukarıdaki örnekte oluşturulan verilerin yer aldığı bir sayfadan başlayarak, aşağıdaki spreadsheets.values.update kod örneğinde değerlerin B1:D4 aralığına nasıl yazılacağı gösterilmektedir. Bu örnekte, bazı hücreler değiştirilmeden bırakılır ve diğer hücreler temizlenir. ValueInputOption sorgu parametresi gereklidir ve yazılan değerlerin ayrıştırılıp ayrıştırılmadığını (ör. bir dizenin tarihe dönüştürülüp dönüştürülmediğini) belirler.

İsteğin gövdesi, yazılacak aralık değerlerini tanımlayan bir ValueRange nesnesidir. majorDimension alanı, dizilerin sütuna göre düzenlenmiş değer listeleri olduğunu belirtir.

İstek protokolü aşağıda gösterilmiştir.

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", ""]
  ]
}

Buradaki values alanında, aralıktaki her sütunda yapılan değişiklikler listelenir. İlk dizi, B1'in değiştirilmeyeceğini (null dizi öğesi nedeniyle) ve B4'ün temizleneceğini (boş dize) belirtir. B2 ve B3'ün değerleri güncellenir. Üçüncü dizi, D sütununda aynı işlemleri gerçekleştirirken ikinci boş dizi, C sütununun değiştirilmeyeceğini belirtir.

Yanıt, şunun gibi bir UpdateValuesResponse nesnesinden oluşur:

{
  "spreadsheetId": SPREADSHEET_ID,
  "updatedRange": "Sheet1!B1:D5",
  "updatedRows": 3,
  "updatedColumns": 2,
  "updatedCells": 6,
}

Elde edilen sayfa aşağıdaki gibi görünür:

CEVAP B C D
1 Öğe Maliyet Stokta Gönderim Tarihi
2 Dönme dolap 1,00 ABD doları 4 01.04.2016
3 Kapı 2 ABD doları 2 15.04.2016
4 Motor 1
5 Toplam 3,00 ABD doları 7 15.04.2016

"Toplamlar" satırı, bu istek tarafından doğrudan değiştirilmese de, hücrelerinin değiştirilmiş hücrelere bağlı formüller içermesi nedeniyle değişeceğini unutmayın.

Birden çok aralığa yazma

Boş bir sayfayla başlayan aşağıdaki spreadsheets.values.batchUpdate kod örneğinde, Sheet1!A1:A4 ve Sheet1!B1:D2 aralıklarına nasıl değer yazılacağı gösterilmektedir. Hedef aralıktaki mevcut değerlerin üzerine yazılır. İstek gövdesi, giriş verilerinin nasıl yorumlanacağını gösteren bir ValueInputOption nesnesinden ve yazılan her aralığa karşılık gelen ValueRange nesne dizisinden oluşur. majorDimension alanı, dahil edilen dizilerin sütun veya satır dizileri olarak yorumlanıp yorumlanmayacağını belirler.

İstek protokolü aşağıda gösterilmiştir.

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"]
      ]
    }
  ]
}

Yanıt, güncellenen hücre istatistiklerini listeleyen bir nesneden ve güncellenen her aralık için bir tane olacak şekilde UpdateValuesResponse nesne dizisinden oluşur. Örneğin:

{
  "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,
    }
  ],
}

Elde edilen sayfa aşağıdaki gibi görünür:

CEVAP B C D
1 Öğe Maliyet Stokta Gönderim Tarihi
2 Dönme dolap 20,50 TL 4 01.03.2016
3 Kapı
4 Motor
5

Değerleri ayrıştırmadan yaz

Boş bir sayfayla başlayan aşağıdaki spreadsheets.values.update kod örneğinde, değerlerin Sheet1!A1:E1 aralığına nasıl yazılacağı gösterilmektedir. Ancak yazılı dizelerin formül, boole veya sayı olarak ayrıştırılmasını önlemek için RAW ValueInputOption sorgu parametresi kullanılır. Bunlar dize olarak görünür ve metin hizalaması sayfada yaslanır.

İsteğin gövdesi, yazılacak aralık değerlerini tanımlayan bir ValueRange nesnesidir. majorDimension alanı, dizilerin satırlara göre düzenlenmiş değer listeleri olduğunu belirtir. Hedef aralıktaki mevcut değerlerin üzerine yazılır.

İstek protokolü aşağıda gösterilmiştir.

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"]
  ],
}

Yanıt, şunun gibi bir UpdateValuesResponse nesnesinden oluşur:

{
  "spreadsheetId": SPREADSHEET_ID,
  "updatedRange": "Sheet1!A1:E1",
  "updatedRows": 1,
  "updatedColumns": 5,
  "updatedCells": 5,
}

Elde edilen sayfa aşağıdaki gibi görünür:

CEVAP B C D E
1 Veriler 123,45 TRUE =MAK(D2:D4) 10
2

"TRUE"nun ortalandığını ve bir boole değeri olduğunu, "123,45"in ise sayı olduğu için sağa yaslanmış olduğunu, "10"un ise dize olduğu için kenara yaslandığını unutmayın. Formül ayrıştırılmaz ve dize olarak da görünür.

Değer ekle

Aşağıdaki tablo gibi bir sayfayla başlayın:

CEVAP B C D
1 Öğe Maliyet Stokta Gönderim Tarihi
2 Dönme dolap 20,50 TL 4 01.03.2016
3

Aşağıdaki spreadsheets.values.append kod örneğinde, 3. satırdan başlayan iki yeni değer satırının nasıl ekleneceği gösterilmektedir. ValueInputOption sorgu parametresi gereklidir ve yazılan değerlerin ayrıştırılıp ayrıştırılmadığını (ör. bir dizenin tarihe dönüştürülüp dönüştürülmediğini) belirler.

İsteğin gövdesi, yazılacak aralık değerlerini tanımlayan bir ValueRange nesnesidir. majorDimension alanı, dizilerin satırlara göre düzenlenmiş değer listeleri olduğunu belirtir.

İstek protokolü aşağıda gösterilmiştir.

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"],
  ],
}

Yanıt, şunun gibi bir AppendValuesResponse nesnesinden oluşur:

{
  "spreadsheetId": SPREADSHEET_ID,
  "tableRange": "Sheet1!A1:D2",
  "updates": {
    "spreadsheetId": SPREADSHEET_ID,
    "updatedRange": "Sheet1!A3:D4",
    "updatedRows": 2,
    "updatedColumns": 4,
    "updatedCells": 8,
  }
}

Elde edilen sayfa aşağıdaki gibi görünür:

CEVAP B C D
1 Öğe Maliyet Stokta Gönderim Tarihi
2 Dönme dolap 20,50 TL 4 01.03.2016
3 Kapı Hong Kong doları 2 15.03.2016
4 Motor Hong Kong doları 1 20.03.2016
5