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 |