Temel yazma

Google E-Tablolar API'si, hücrelere, aralıklara, aralık kümelerine ve tüm sayfalara değer ve formül yazmanıza olanak tanır. Bu sayfadaki örnekler, Sheets API'nin spreadsheets.values kaynağıyla bazı yaygın yazma işlemlerinin nasıl gerçekleştirilebileceğini gösterir.

Hücre değerlerini spreadsheet.batchUpdate yöntemiyle de yazabileceğinizi unutmayın. Bu yöntem, hücre biçimlendirmesini veya spreadsheets.values kaynağının etkilemediği diğer özellikleri aynı anda güncellemek istediğinizde faydalı olabilir. Örneğin, bir hücre aralığını bir sayfadan diğerine kopyalarken hem hücre formülünün hem de hücre biçimlendirmesinin üzerine yazmak istiyorsanız spreadsheet.batchUpdate ile UpdateCellsRequest yöntemini kullanabilirsiniz.

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

Bu örnekler, dilden bağımsız olması için HTTP istekleri şeklinde sunulur. Google API istemci kitaplıklarını kullanarak farklı dillerde yazma işlemlerini nasıl uygulayacağınızı öğrenmek için Hücre değerlerini okuma ve yazma başlıklı makaleyi inceleyin.

Bu örneklerde, SPREADSHEET_ID yer tutucusu, e-tablo URL'sinden bulunabilen e-tablo kimliğini nerede sağlayacağınızı gösterir. Yazılacak aralıklar A1 gösterimi kullanılarak belirtilir. Örnek bir aralık: Sayfa1!A1:D5.

Tek bir aralık yazma

Yeni ve boş bir e-tabloyla başlayarak, 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ılmayacağını (örneğin, bir dizenin tarihe dönüştürülüp dönüştürülmeyeceğini) belirler.

İstek gövdesi, yazılacak aralık değerlerini açıklayan bir ValueRange nesnesidir. majorDimension alanı, dizilerin satırlara göre düzenlenmiş değer listeleri olduğunu gösterir. Hedef aralıktaki mevcut değerlerin üzerine yazılır.

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

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, aşağıdakine 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:

A B C D
1 Öğe Maliyet Stokta Kargo Tarihi
2 Tekerlek 20,50 ABD doları 4 01.03.2016
3 Kapı 15 Hong Kong doları 2 15.03.2016
4 Motor 100 ABD doları 1 20.03.2016
5 Toplam 135,5 ABD doları 7 20.03.2016

Bir aralığa seçerek yazma

Bir aralığa değer yazarken, karşılık gelen dizi öğelerini null olarak ayarlayarak bazı mevcut hücrelerin değiştirilmesini önleyebilirsiniz. Ayrıca, boş bir dize ("") yazarak da hücreyi temizleyebilirsiniz.

Yukarıdaki örnekte oluşturulan aynı verileri içeren bir sayfayla başlayarak aşağıdaki spreadsheets.values.update kod örneğinde, değerlerin B1:D4 aralığına nasıl yazılacağı, bazı hücrelerin değiştirilmeden bırakılacağı ve diğerlerinin temizleneceği gösterilmektedir. ValueInputOption sorgu parametresi gereklidir ve yazılan değerlerin ayrıştırılıp ayrıştırılmayacağını (örneğin, bir dizenin tarihe dönüştürülüp dönüştürülmeyeceğini) belirler.

İstek gövdesi, yazılacak aralık değerlerini açıklayan bir ValueRange nesnesidir. majorDimension alanı, dizilerin sütuna göre düzenlenmiş değer listeleri olduğunu gösterir.

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

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şmeden bırakılacağını (null dizi öğesi nedeniyle), B4'ün ise temizleneceğini (boş dize) gösterir. B2 ve B3 değerleri güncellenir. Üçüncü dizi, D sütununda aynı işlemleri gerçekleştirirken ikinci boş dizi, C sütununun değiştirilmeden bırakılacağını belirtir.

Yanıt, aşağıdaki 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:

A B C D
1 Öğe Maliyet Stokta Kargo Tarihi
2 Tekerlek 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ının, bu istekten doğrudan etkilenmese de değiştirilen hücrelere bağlı formüller içerdiğinden değiştiğini unutmayın.

Birden çok aralığa yazma

Boş bir sayfayla başlayarak aşağıdaki spreadsheets.values.batchUpdate kod örneğinde, değerlerin Sheet1!A1:A4 ve Sheet1!B1:D2 aralıklarına nasıl 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 bir ValueRange nesneleri 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österilmektedir.

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 nesne ve güncellenen her aralık için bir tane olmak üzere UpdateValuesResponse nesnelerinden oluşan bir diziden 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:

A B C D
1 Öğe Maliyet Stokta Kargo Tarihi
2 Tekerlek 20,50 ABD doları 4 01.03.2016
3 Kapı
4 Motor
5

Değerleri ayrıştırmadan yazma

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

İstek gövdesi, yazılacak aralık değerlerini açıklayan bir ValueRange nesnesidir. majorDimension alanı, dizilerin satırlara göre düzenlenmiş değer listeleri olduğunu gösterir. Hedef aralıktaki mevcut değerlerin üzerine yazılır.

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

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, aşağıdaki 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:

A B C D E
1 Veriler 123,45 DOĞRU =MAK(D2:D4) 10
2

"DOĞRU" değerinin ortalanmış ve bir Boole değeri olduğunu, "123,45" değerinin sayı olduğu için sağa, "10" değerinin ise dize olduğu için sola yaslandığını unutmayın. Formül ayrıştırılmaz ve dize olarak görünür.

Değerleri ekleme

Aşağıdaki tablo gibi bir e-tabloyla başlayın:

A B C D
1 Öğe Maliyet Stokta Kargo Tarihi
2 Tekerlek 20,50 ABD doları 4 01.03.2016
3

Aşağıdaki spreadsheets.values.append kod örneğinde, 3. satırdan başlayarak 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ılmayacağını (örneğin, bir dizenin tarihe dönüştürülüp dönüştürülmeyeceğini) belirler.

İstek gövdesi, yazılacak aralık değerlerini açıklayan bir ValueRange nesnesidir. majorDimension alanı, dizilerin satırlara göre düzenlenmiş değer listeleri olduğunu gösterir.

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

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, aşağıdaki 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:

A B C D
1 Öğe Maliyet Stokta Kargo Tarihi
2 Tekerlek 20,50 ABD doları 4 01.03.2016
3 Kapı 15 Hong Kong doları 2 15.03.2016
4 Motor 100 ABD doları 1 20.03.2016
5