Google Sheets API memungkinkan Anda menulis nilai dan formula ke sel, rentang, kumpulan rentang, dan seluruh sheet. Contoh di halaman ini mengilustrasikan bagaimana
beberapa operasi tulis umum dapat dilakukan dengan
resource spreadsheets.values
dari Sheets API.
Perhatikan bahwa Anda juga dapat menulis nilai sel menggunakan metode spreadsheet.batchUpdate
, yang dapat berguna jika ingin mengupdate pemformatan sel atau properti lain secara bersamaan yang tidak terpengaruh oleh resource spreadsheets.values
. Misalnya, jika Anda ingin menyalin rentang sel dari
satu sheet ke sheet lainnya sekaligus menimpa formula sel dan pemformatan
sel, Anda dapat menggunakan metode
UpdateCellsRequest
dengan
spreadsheet.batchUpdate
.
Namun, untuk penulisan nilai sederhana, lebih mudah untuk menggunakan
metode
spreadsheets.values.update
atau metode
spreadsheets.values.batchUpdate
.
Contoh ini disajikan dalam bentuk permintaan HTTP agar tidak menggunakan bahasa. Untuk mempelajari cara mengimplementasikan penulisan dalam berbagai bahasa menggunakan library klien Google API, lihat Membaca & menulis nilai sel.
Dalam contoh ini, SPREADSHEET_ID
placeholder menunjukkan tempat Anda akan menyediakan ID spreadsheet, yang dapat ditemukan dari URL spreadsheet. Rentang yang menjadi tujuan penulisan ditentukan menggunakan notasi
A1. Contoh rentangnya adalah Sheet1!A1:D5.
Menulis satu rentang
Dimulai dengan spreadsheet baru yang kosong, contoh kode
spreadsheets.values.update
berikut menunjukkan cara menulis nilai ke rentang. Parameter kueri ValueInputOption
diperlukan dan menentukan apakah nilai yang ditulis akan diuraikan (misalnya, apakah string dikonversi menjadi tanggal atau tidak).
Isi permintaan adalah objek
ValueRange
yang menjelaskan nilai rentang yang akan ditulis. Kolom
majorDimension
menunjukkan bahwa array adalah daftar nilai yang diatur menurut baris. Nilai yang ada dalam rentang target akan ditimpa.
Protokol permintaan ditampilkan di bawah ini.
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)"] ], }
Respons terdiri dari
objek UpdateValuesResponse
, seperti yang satu ini:
{
"spreadsheetId": SPREADSHEET_ID
,
"updatedRange": "Sheet1!A1:D5",
"updatedRows": 5,
"updatedColumns": 4,
"updatedCells": 20,
}
Sheet yang dihasilkan akan terlihat seperti berikut:
A | B | C | H | |
1 | Item | Biaya | Dengan Persediaan | Tanggal Pengiriman |
2 | Wheel | $20,50 | 4 | 1/3/2016 |
3 | Pintu | $15 | 2 | 15/3/2016 |
4 | Engine | $100 | 1 | 20/3/2016 |
5 | Total | $135,5 | 7 | 20/3/2016 |
Menulis secara selektif ke rentang
Saat menulis nilai ke rentang, Anda dapat menghindari perubahan pada beberapa sel
yang ada dengan menetapkan elemen array yang sesuai ke null
. Anda juga dapat menghapus sel dengan menulis string kosong (""
) ke sel tersebut.
Dimulai dengan sheet yang berisi data yang sama yang dihasilkan oleh contoh
di atas, contoh kode
spreadsheets.values.update
berikut menunjukkan cara menulis nilai ke rentang B1:D4, sehingga secara selektif
membiarkan beberapa sel tidak berubah dan menghapus yang lainnya. Parameter kueri ValueInputOption
diperlukan dan menentukan apakah nilai yang ditulis akan diuraikan (misalnya, apakah string dikonversi menjadi tanggal atau tidak).
Isi permintaan adalah objek
ValueRange
yang menjelaskan nilai rentang yang akan ditulis. Kolom
majorDimension
menunjukkan bahwa array adalah daftar nilai yang diatur menurut kolom.
Protokol permintaan ditampilkan di bawah ini.
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", ""] ] }
Kolom values
di sini mencantumkan perubahan yang dibuat pada setiap kolom dalam rentang. Array
pertama menunjukkan bahwa B1 akan dibiarkan tidak berubah (karena elemen array
null
), sedangkan B4 akan dihapus (string kosong). Nilai B2 dan B3 diperbarui. Array ketiga melakukan operasi yang sama pada kolom D, sedangkan
array kosong kedua menunjukkan bahwa kolom C tidak boleh diubah.
Respons terdiri dari objek
UpdateValuesResponse
seperti yang satu ini:
{
"spreadsheetId": SPREADSHEET_ID
,
"updatedRange": "Sheet1!B1:D5",
"updatedRows": 3,
"updatedColumns": 2,
"updatedCells": 6,
}
Sheet yang dihasilkan akan terlihat seperti berikut:
A | B | C | H | |
1 | Item | Biaya | Dengan Persediaan | Tanggal Pengiriman |
2 | Wheel | $1,00 | 4 | 1/4/2016 |
3 | Pintu | $2 | 2 | 15/4/2016 |
4 | Engine | 1 | ||
5 | Total | $3,00 | 7 | 15/4/2016 |
Perhatikan bahwa baris "Total", meskipun tidak diubah secara langsung oleh permintaan ini, akan berubah karena selnya berisi formula yang bergantung pada sel yang diubah.
Menulis ke beberapa rentang
Dimulai dengan sheet kosong, contoh kode
spreadsheets.values.batchUpdate
berikut menunjukkan cara menulis nilai ke rentang Sheet1!A1:A4 dan
Sheet1!B1:D2. Nilai yang ada dalam rentang target akan ditimpa. Isi
permintaan terdiri dari
objek ValueInputOption
yang
menunjukkan cara menafsirkan data input dan array
objek ValueRange
yang sesuai dengan setiap rentang yang ditulis. Kolom
majorDimension
menentukan apakah array yang disertakan ditafsirkan sebagai array kolom atau baris.
Protokol permintaan ditampilkan di bawah ini.
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"] ] } ] }
Respons terdiri dari objek yang mencantumkan statistik sel yang diperbarui
dan array objek
UpdateValuesResponse
, satu untuk setiap rentang yang diperbarui. Contoh:
{ "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, } ], }
Sheet yang dihasilkan akan terlihat seperti berikut:
A | B | C | H | |
1 | Item | Biaya | Dengan Persediaan | Tanggal Pengiriman |
2 | Wheel | $20,50 | 4 | 1/3/2016 |
3 | Pintu | |||
4 | Engine | |||
5 |
Menulis nilai tanpa mengurai
Dimulai dengan sheet kosong, contoh kode
spreadsheets.values.update
berikut menunjukkan cara menulis nilai ke rentang Sheet1!A1:E1, tetapi menggunakan
parameter kueri RAW
ValueInputOption
untuk mencegah string tertulis agar tidak diuraikan sebagai formula,
boolean, atau angka. Tombol muncul sebagai string dan perataan teks diratakan
dalam sheet.
Isi permintaan adalah objek
ValueRange
yang menjelaskan nilai rentang yang akan ditulis. Kolom
majorDimension
menunjukkan bahwa array adalah daftar nilai yang diatur menurut baris. Nilai yang ada dalam rentang target akan ditimpa.
Protokol permintaan ditampilkan di bawah ini.
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"] ], }
Respons terdiri dari objek
UpdateValuesResponse
seperti yang satu ini:
{
"spreadsheetId": SPREADSHEET_ID
,
"updatedRange": "Sheet1!A1:E1",
"updatedRows": 1,
"updatedColumns": 5,
"updatedCells": 5,
}
Sheet yang dihasilkan akan terlihat seperti berikut:
A | B | C | H | E | |
1 | Data | 123,45 | TRUE | =MAX(D2:D4) | 10 |
2 |
Perlu diketahui bahwa "TRUE" berada di tengah dan merupakan nilai boolean, sedangkan "123,45" diratakan ke kanan karena berupa angka, dan "10" diratakan ke kiri karena merupakan string. Formula tidak diuraikan, dan juga muncul sebagai string.
Tambahkan nilai
Mulailah dengan {i>sheet<i} seperti tabel di bawah ini:
A | B | C | H | |
1 | Item | Biaya | Dengan Persediaan | Tanggal Pengiriman |
2 | Wheel | $20,50 | 4 | 1/3/2016 |
3 |
Contoh kode
spreadsheets.values.append
berikut menunjukkan cara menambahkan dua baris nilai baru yang dimulai dengan baris 3. Parameter kueri ValueInputOption
diperlukan dan menentukan apakah nilai yang ditulis akan diuraikan (misalnya, apakah string dikonversi menjadi tanggal atau tidak).
Isi permintaan adalah objek
ValueRange
yang menjelaskan nilai rentang yang akan ditulis. Kolom
majorDimension
menunjukkan bahwa array adalah daftar nilai yang diatur menurut baris.
Protokol permintaan ditampilkan di bawah ini.
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"], ], }
Respons terdiri dari objek
AppendValuesResponse
seperti yang satu ini:
{ "spreadsheetId":SPREADSHEET_ID
, "tableRange": "Sheet1!A1:D2", "updates": { "spreadsheetId":SPREADSHEET_ID
, "updatedRange": "Sheet1!A3:D4", "updatedRows": 2, "updatedColumns": 4, "updatedCells": 8, } }
Sheet yang dihasilkan akan terlihat seperti berikut:
A | B | C | H | |
1 | Item | Biaya | Dengan Persediaan | Tanggal Pengiriman |
2 | Wheel | $20,50 | 4 | 1/3/2016 |
3 | Pintu | $15 | 2 | 15/3/2016 |
4 | Engine | $100 | 1 | 20/3/2016 |
5 |