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 sayfada, E-Tablolar API'sinin spreadsheets.values
kaynağıyla bazı yaygın yazma işlemlerinin nasıl yapılabileceği gösterilmektedir.
spreadsheet.batchUpdate
yöntemini kullanarak hücre değerleri yazmanın da mümkün olduğunu unutmayın. Bu yöntem, hücre biçimlendirmesini veya spreadsheets.values
kaynağının etkilemediği diğer özellikleri eşzamanlı olarak güncellemek istiyorsanız bu yöntemden yararlanabilir. Örneğin, hem hücre formülünün hem de hücre biçimlendirmesinin üzerine yazarak bir hücre aralığını bir sayfadan diğerine kopyalamak istiyorsanız spreadsheet.batchUpdate
ile UpdateCellsRequest
yöntemini kullanabilirsiniz.
Ancak basit değer yazma işlemleri için spreadsheets.values.update
yöntemini veya spreadsheets.values.batchUpdate
yöntemini kullanmak daha kolaydır.
Bu örnekler, dil açısından tarafsız olması için HTTP istekleri biçiminde 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 aralık: Sayfa1!A1:D5.
Tek bir aralık yazma
Aşağıdaki spreadsheets.values.update
kod örneğinde, yeni ve boş bir e-tablodan başlayarak değerlerin bir aralığa nasıl yazılacağı gösterilmektedir. ValueInputOption
sorgu parametresi zorunludur ve yazılan değerlerin ayrıştırılıp ayrıştırılmayacağını belirler (ör. bir dizenin tarihe dönüştürülüp dönüştürülmeyeceği).
İsteğin 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ö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, aşağıdaki gibi bir UpdateValuesResponse
nesnesinden oluşur:
{
"spreadsheetId": SPREADSHEET_ID
,
"updatedRange": "Sheet1!A1:D5",
"updatedRows": 5,
"updatedColumns": 4,
"updatedCells": 20,
}
Sonuçta oluşturulan sayfa aşağıdaki gibi görünür:
A | B | C | D | |
1 | Öğe | Maliyet | Stokta | Gönderim Tarihi |
2 | Tekerlek | 20,50 ABD doları | 4 | 01.03.2016 |
3 | Kapı | 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
Değerleri bir aralığa yazarken, karşılık gelen dizi öğelerini null
değerine ayarlayarak mevcut bazı hücrelerin değiştirilmesini önlemek mümkündür. Bir hücreye boş bir dize (""
) yazarak da hücreyi temizleyebilirsiniz.
Yukarıdaki örnekte üretilen verilerin aynısını içeren bir sayfayla başlayacak olan aşağıdaki spreadsheets.values.update
kod örneğinde, değerlerin B1:D4 aralığına nasıl yazılacağı, bazı hücrelerin seçmeli olarak değiştirilmeden bırakılıp diğerlerinin temizlenmesi gösterilmektedir. ValueInputOption
sorgu parametresi zorunludur ve yazılan değerlerin ayrıştırılıp ayrıştırılmayacağını belirler (ör. bir dizenin tarihe dönüştürülüp dönüştürülmeyeceği).
İ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ö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 (null
dizi öğesi nedeniyle) değiştirilmeden bırakılacağını, B4'ün ise temizleneceğini (boş dize) belirtir. B2 ve B3 hücrelerinin değerleri güncellendi. Üçüncü dizi, D sütununda aynı işlemleri gerçekleştirirken ikinci boş dizi, C sütununun değiştirilmeyeceğini 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 | Gönderim 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 istekle doğrudan değiştirilmediğini ancak hücreleri değiştirilen hücrelere bağlı formüller içerdiği için değiştiğini unutmayın.
Birden çok alana yazma
Aşağıdaki spreadsheets.values.batchUpdate
kod örneğinde, boş bir sayfadan başlayarak değerlerin Sayfa1!A1:A4 ve Sayfa1!B1:D2 aralıklarını nasıl yazacağınız gösterilmektedir. Hedef aralıkta bulunan mevcut değerlerin üzerine yazılır. İstek gövdesi, giriş verilerinin nasıl yorumlanacağını gösteren bir ValueInputOption
nesnesi ve yazılan her aralığa karşılık gelen bir ValueRange
nesnesi dizisinden oluşur. majorDimension
alanı, dahil edilen dizilerin sütun dizisi mi yoksa satır dizisi mi olarak yorumlanacağı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 her güncellenen aralık için bir tane olmak üzere bir UpdateValuesResponse
nesnesi 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:
A | B | C | D | |
1 | Öğe | Maliyet | Stokta | Gönderim Tarihi |
2 | Tekerlek | 20,50 ABD doları | 4 | 01.03.2016 |
3 | Kapı | |||
4 | Motor | |||
5 |
Ayrıştırmadan değer yazma
Boş bir sayfayla başlayan aşağıdaki spreadsheets.values.update
kod örneği, değerlerin Sayfa1!A1:E1 aralığına nasıl yazılacağını gösterir ancak yazılan dizelerin formül, doğru/yanlış veya sayı olarak ayrıştırılmasını önlemek için RAW
ValueInputOption
sorgu parametresini kullanır. Bunlar dize olarak görünür ve sayfadaki metin hizalaması sağa dayalı olur.
İ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ö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, 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"nun ortalanıp bir boole değeri olduğunu, "123, 45"in sayı olduğu için sağa yaslandığını ve "10"un dize olduğu için sola yaslandığını unutmayın. Formül ayrıştırılmaz ve dize olarak görünür.
Değer ekleme
Aşağıdaki tabloya benzer bir sayfayla başlayın:
A | B | C | D | |
1 | Öğe | Maliyet | Stokta | Gönderim 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ş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ılmayacağını (örneğin, bir dizenin tarihe dönüştürülüp dönüştürülmeyeceğini) belirler.
İsteğin 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ö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, 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 | Gönderim Tarihi |
2 | Tekerlek | 20,50 ABD doları | 4 | 01.03.2016 |
3 | Kapı | Hong Kong doları | 2 | 15.03.2016 |
4 | Motor | 100 ABD doları | 1 | 20.03.2016 |
5 |