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 gerçekleştirilebileceğini gösterir.
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, bir sayfadaki 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 UpdateCellsRequest
yöntemini spreadsheet.batchUpdate
ile 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 olarak 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 nereye sağlayacağınızı göstermektedir. Yazılacak aralıklar, A1 gösterimi kullanılarak belirtilir. Sayfa1!A1:D5 gibi bir aralık örnek verilebilir.
Tek bir aralık yazma
Yeni ve boş bir e-tablodan 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.
İsteğin gövdesi, yazılacak aralık değerlerini açıklayan bir ValueRange
nesnesidir. majorDimension
alanı, dizilerin satırlara göre düzenlenen 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,
}
Elde edilen sayfa aşağıdaki gibi görünür:
CEVAP | B | C | G | |
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 TL | 7 | 20.03.2016 |
Bir aralığa seçmeli yazma
Değerleri bir aralığa yazarken, karşılık gelen dizi öğelerini null
değerine ayarlayarak mevcut bazı hücrelerde değişiklik yapmaktan kaçınmak mümkündür. Bir hücreye boş 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 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 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 bir sütunda yapılan değişiklikler listelenir. İlk dizi, B1'in değiştirilmeyeceğini (null
dizi öğesi nedeniyle), B4'ün ise temizleneceğini (boş dize) gösterir. 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 gösterir.
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:
CEVAP | B | C | G | |
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ücrelerin değiştirilen hücrelere bağlı formüller içerdiği için değişeceğini unutmayın.
Birden fazla 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 bir aralığa karşılık gelen bir 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 nesne ve güncellenen her aralık için bir 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 | G | |
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 yazma
Boş bir sayfadan başlayarak aşağıdaki spreadsheets.values.update
kod örneğinde, değerlerin Sheet1!A1:E1 aralığına nasıl yazılacağı gösterilir 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 hizalanır.
İsteğin gövdesi, yazılacak aralık değerlerini açıklayan bir ValueRange
nesnesidir. majorDimension
alanı, dizilerin satırlara göre düzenlenen 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:
CEVAP | B | C | G | E | |
1 | Veriler | 123,45 | TRUE | =MAK(D2:D4) | 10 |
2 |
"TRUE" ortalanmış ve bir boole değeridir. "123, 45" ise sayı olduğu için sağa yaslanmış, "10" ise dize olduğu için sola yaslanmıştır. Formül ayrıştırılmaz ve aynı zamanda bir dize olarak görünür.
Değer ekleyin
Aşağıdaki tablo gibi bir sayfayla başlayın:
CEVAP | B | C | G | |
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ı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üzenlenen 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:
CEVAP | B | C | G | |
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 |