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 |