Tablolar hizmeti, komut dosyalarının Google Tablolar'daki satırları programatik olarak okumasına ve düzenlemesine olanak tanır.
Referans
Bu hizmet hakkında daha fazla bilgi için Tablolar API'si belgelerine göz atın. Apps Komut Dosyası'ndaki tüm gelişmiş hizmetler gibi, Tablolar hizmeti de herkese açık API ile aynı nesneleri, yöntemleri ve parametreleri kullanır. Daha fazla bilgi için Yöntem imzalarının nasıl belirlendiği başlıklı makaleyi inceleyin.
Sorunları bildirmek ve diğer destek seçeneklerini öğrenmek için Tablolar destek kılavuzuna bakın.
Örnek kod
Tablo listesini alma
Aşağıdaki örnekte, kullanıcının sahip olduğu tüm tabloların listesinin nasıl alınacağı gösterilmektedir.
// Get list of tables the user owns var response = Area120Tables.Tables.list(); if (response) { var tables = response.tables; Logger.log(JSON.stringify(tables[0])); }
Aşağıda, tablo ve tablo sütunu tanımları hakkında bilgi içeren yanıt örneği verilmiştir:
{
“tables”: [
{
"name": "tables/b6prMlkWyekbsCFeX6IOdu",
"displayName": "Applicants"
"columns": [
{"id": "9qVCMvgh", "name": "Name", "dataType": "text"},
{"id": "aD8dDXAS", "name": "Email", "dataType": "text"},
{"id": "9pc0kdNX", "name": "Experience", "dataType": "tags_list",
"labels": [
{"id": "aAqi235Q", "name": "Android"},
{"id": "bULZ4OK3", "name": "iOS"},
],
},
{"id": "8abYfCyo", "name": "Home Address", "dataType": "location"},
{"id": "8ccERJ2v", "name": "Doc", "dataType": "file_attachment_list"},
{"id": "aFb-tXf1", "name": "Stage", "dataType": "dropdown",
"labels": [
{"id": "8Hcb-Pxe", "name": "Applied"},
{"id": "aM3EDGFf", "name": "Phone Screen"},
{"id": "abyFLVKU", "name": "Onsite Interview"},
],
},
{"id": "9yKUThTi", "name": "Recruiter", "dataType": "person_list"},
{"id": "a5c9WPVA", "name": "Interview Date", "dataType": "date"},
{"id": "bqtbYPtH", "name": "Created", "dataType": "create_timestamp"},
{"id": "bWR08pBv", "name": "Updated", "dataType": "update_timestamp"}
]
},
... // more tables
]
}
Yanıt, varsayılan olarak en fazla 20 tablo içerir. Daha fazla tablo almak için aşağıdaki page_token
ve page_size
parametrelerini kullanarak yanıtları sayfalandırın:
// Paginate through a list of tables var pageSize = 1000; var pageToken; var response = Area120Tables.Tables.list({page_size: pageSize}); while (response) { var tables = response.tables; // get next page of tables pageToken = response.nextPageToken; if (!pageToken) { response = undefined; } else { response = Area120Tables.Tables.list(tableRequest, {page_size: pageSize, page_token: pageToken}); } }
Liste tabloları için page_size
parametresinin maksimum değeri 100'dür.
Tablonun bilgilerini ve sütun tanımlarını alma
Aşağıdaki örnekte, belirli bir tablonun bilgilerinin ve sütun tanımının nasıl alınacağı gösterilmektedir.
var tableID = "TABLE_ID
"; // ID for the table
var tableName = "tables/" + tableID;
var response = Area120Tables.Tables.get(tableName);
Logger.log(JSON.stringify(response));
Tablo kimliğini bulma
Tablonun kimliğini bulmak için Tablolar web uygulamasında tabloyu açın.
En üstteki URL'de, tablo kimliği /table/
işaretinden hemen sonra gelir.
Aşağıdaki örnekte, tablo kimliğinin çeşitli Tablolar URL'lerinde nerede bulunabileceği gösterilmektedir:
https://tables.area120.google.com/u/0/workspace/abcdefghijklmnop/table/TABLE_ID
https://tables.area120.google.com/u/0/table/TABLE_ID
https://tables.area120.google.com/u/0/table/TABLE_ID
/view/abcedfghijk
Tablo satırlarını okuma
Aşağıdaki örnekte, bir tablonun satırlarının listesinin nasıl alınacağı ve alan değerlerinin nasıl okunacağı gösterilmektedir.
var tableID = "TABLE_ID
"; // ID for the table
var pageToken;
var pageSize = 1000;
var tableName = "tables/" + tableID;
var response = Area120Tables.Tables.Rows.list(tableName)
if (response) {
for (var i = 0, rows = response.rows; i < rows.length; i++) {
if (!rows[i].values) { // If blank row, keep going
Logger.log("Empty row");
continue;
}
Logger.log(rows[i].values);
Logger.log(rows[i].values["Description"]);
}
}
Örnek bir yanıt aşağıda gösterilmiştir. Yanıt, tablodaki satırların listesini ve her alanın değerlerini içerir.
{
“rows”: [
{
"name": "tables/TABLE_ID
/rows/a6tvEPska7l8rAlHlSdOLb",
"values": {
"Thing to do": "First item", // Text
"Size": 100, // Number
"ETA":{"month":12,"day":3,"year":2021} // Date
"Stage": "Completed", // Dropdown
"Checklist": [ // Checklist
"Do this",
"then this"
],
"Labels": [ // Tags
"Green",
"Purple"
],
"Address": { // Location
"latitude": 40.740726470947266,
"longitude": -74.00206756591797,
"address": "3014 Watson Lane, Sattler, TX 78130, USA"
},
"Archive?": true, // Checkbox
"ID#": 1, // Auto ID
"Row creator": "liz@gmail.com", // Creator / Updater / Person
"Last updated": "October 7, 2020 6:30:38 PM EDT",
"Created on": "March 2, 2020 1:07:54 PM EST",
}
},
... // More rows
],
}
Yanıtta varsayılan olarak en fazla 50 satır bulunur. Daha fazla satır almak için aşağıdaki page_token
ve page_size
parametrelerini kullanarak yanıtları sayfalara ayırın:
var pageToken; var pageSize = 1000; var response = Area120Tables.Tables.Rows.list(tableName, {page_size: pageSize}); while (response) { var rows = response.rows; // read next page of rows pageToken = response.nextPageToken; if (!pageToken) { response = undefined; } else { response = Area120Tables.Tables.Rows.list(tableName, {page_size: pageSize, page_token: pageToken}); } }
Daha fazla sayfa varsa yanıtta nextPageToken
simgesi gösterilir.
Aksi takdirde yanıt tanımlanmamıştır. Sonuçların sonraki sayfasını almak için nextPageToken
değerini sonraki liste çağrısına iletin.
page_size
parametresinin maksimum değeri 1.000'dir.
Tablodan bir satır alma
Aşağıdaki örnekte, bir tablodaki bir satırın alan değerlerinin nasıl okunacağı gösterilmektedir.
var tableID = "TABLE_ID
"; // ID for the table var tableName = "tables/" + tableID; var rowID = "ROW_ID
"; // ID for the row to fetch var rowName = tableName + "/rows/" + rowID; // Construct row name var response = Area120Tables.Tables.Rows.get(rowName) if (response) { Logger.log(response.values); }
Satır listesini filtreleme
Yalnızca ilgilendiğiniz sonuçları elde etmek için satır listesini filtrelemek üzere filter
parametresini kullanın. Filtre tarafından desteklenen söz dizimi ve sütun türleri hakkında daha fazla bilgi için lütfen filtreleme API'si belgelerine göz atın.
var tableID = "TABLE_ID
"; // ID for the table
var pageToken;
var pageSize = 1000;
var tableName = "tables/" + tableID;
var response = Area120Tables.Tables.Rows.list(tableName, {filter:"values.\"Point of Contact\"=\"john.doe@gmail.com\""})
if (response) {
for (var i = 0, rows = response.rows; i < rows.length; i++) {
if (!rows[i].values) { // If blank row, keep going
Logger.log("Empty row");
continue;
}
Logger.log(rows[i].values);
Logger.log(rows[i].values["Description"]);
}
}
Yanıtta, "İlgili Kişi" sütunu "john.doe@gmail.com" olarak ayarlanmış satırlar yer alıyor.
{
“rows”: [
{
"name": "tables/TABLE_ID
/rows/a6tvEPska7l8rAlHlSdOLb",
"values": {
"Thing to do": "Second item", // Text
"Size": 110, // Number
"ETA":{"month":12,"day":3,"year":2021} // Date
"Stage": "Completed", // Dropdown
"Checklist": [ // Checklist
"Do this",
"then this",
"finally this"
],
"Labels": [ // Tags
"Green",
"Orange"
],
"Address": { // Location
"latitude": 45.740726470947266,
"longitude": -88.00206756591797,
"address": "6027 Holmes Lane, Sattler, TX 78130, USA"
},
"Archive?": false, // Checkbox
"ID#": 2, // Auto ID
"Point of Contact": "john.doe@gmail.com", // Person
"Last updated": "October 9, 2020 6:35:38 PM EDT",
"Created on": "March 10, 2020 1:07:54 PM EST",
}
},
... // More rows
],
}
Tabloda satır oluşturma
Aşağıdaki örnekte, tabloya satır ekleme işlemi gösterilmektedir.
var tableID = "TABLE_ID
"; // ID for the table
var tableName = "tables/" + tableID;
var values = {
"Number Column": 100,
"Text Column 2": "hello world",
"Date Column 3": new Date(),
"Dropdown Col.": "Dropdown value",
};
Area120Tables.Tables.Rows.create({values: values}, tableName);
Yeni satır için ayarlanacak değerleri belirtirken, yazılabilir sütunun türü arama veya özet sütunu olmadığı sürece nesne anahtar-değer çiftlerinin anahtarları, tablodaki sütunların büyük/küçük harfe duyarlı başlıklarıyla tam olarak eşleşmelidir. Arama ve özet sütunlarının değerlerini ilişki değerini kullanarak ayarlarsınız. İlişkiler iletişim kutusunda bulunan ilişki adını kullanarak ilişki değerini güncellemeniz gerekir.
Bir sütun için kabul edilebilir değerler, sütunun veri türüne bağlıdır:
Sütun türü | Veri türü (okuma) | Kabul edilen giriş türleri (yazma) |
---|---|---|
Standart veriler | ||
Metin | String |
String |
Number | Number |
Number |
Tarih | Date
|
Date , String (çoğu tarih biçiminde) |
Zengin veriler | ||
Person | String (e-posta adresi) |
String (Google kullanıcısıyla eşleşmelidir) |
Dosya eki | Object[] { |
Bu alan API ile değiştirilemez. |
Konum | Object {
|
Object {
|
Zengin giriş | ||
Açılır liste | String |
String (açılır liste seçenekleriyle eşleşmelidir) |
Etiketler | String[] (etiket seçenekleri dizisi)
|
String[] (etiket seçenekleriyle eşleşmelidir) |
Onay kutusu | Boolean |
Boolean |
Yapılacaklar listesi | String[] (liste öğeleri dizisi) |
String[] (liste öğeleriyle eşleşmelidir) |
Bağlı veriler | ||
İlişki | String |
String: "tables/[LINKED_TABLE_ID]/rows/[LINKED_ROW_ID]"
|
Arama | Kaynak sütunun türüne bağlıdır. | Bu alan değiştirilemez ve bağlantılı değerle güncellenir. |
Özet | Kaynak sütun türüne ve özet işlevine bağlıdır: Sayı: Number Tarih türü sütunda maksimum: String Değerleri listele: Array |
Bu alan değiştirilemez. |
Hesaplanmış alan | ||
Otomatik kimlik | Number |
Bu alan değiştirilemez. |
Meta veri | ||
İçerik Üretici | String |
Bu alan değiştirilemez. |
Oluşturma zamanı | Object {
|
Bu alan değiştirilemez. |
Güncelleyici | String |
Bu alan değiştirilemez. |
Güncelleme zamanı | Object { |
Bu alan değiştirilemez. |
Tablolar hizmeti, verilen değerleri sütun türüyle eşleşecek şekilde dönüştürmek için elinden geleni yapar. Veriler eşleşmezse değer ayarlanmaz ve yeni satırlar için boş bırakılır.
Tabloya birden fazla satır ekleme
Aşağıdaki örnekte, bir tabloya aynı anda birden fazla satırın nasıl ekleneceği gösterilmektedir.
var tableID = “TABLE_ID
”;
var tableName = "tables/" + tableID;
Area120Tables.Tables.Rows.batchCreate({requests: [
{row:{values:{"Col 1":"Sample", "Col 2":"One", "Col 3":"A"}}},
{row:{values:{"Col 1":"Example", "Col 2":"Two", "Col 3":"B"}}},
{row:{values:{"Col 1":"Test", "Col 2":"Three", "Col 3":"C"}}},
]}, tableName)
Tablodaki bir satırı güncelleme
Aşağıdaki örnekte, bir tablodaki mevcut satırın değerlerinin nasıl güncelleneceği gösterilmektedir:
var rowName = "tables/TABLE_ID
/rows/ROW_ID
"; var values = {"Column": "HELLO"}; var response = Area120Tables.Tables.Rows.patch({values: values}, rowName); Logger.log("Update row:" + JSON.stringify(response));
Satır kimliğini bulma
Bir satırın kimliğini iki şekilde bulabilirsiniz:
API ile satır kimliğini alma
Bir tablodan satır okuduğunuzda, tablo ve satır kimliklerini içeren her satır için name
özelliğini kullanabilirsiniz.
Satır kimliğini Tablolar kullanıcı arayüzünden alma
- Tabloyu Tables web uygulamasında açın.
- Satırı sağ tıklayın.
- Bu satırın bağlantısını al'ı tıklayın.
- Kimliği kopyalayabilmek için URL'yi bir yere yapıştırın.
- URL'de kimlik,
/row/
ifadesinden sonra gelir.
Aşağıdaki örnekte, URL'de satır kimliğinin nerede bulunacağı gösterilmektedir:
https://tables.area120.google.com/table/TABLE_ID
/row/ROW_ID
Tablodaki birden fazla satırı güncelleme
Aşağıdaki örnekte, bir tablodaki birden fazla satırın değerlerinin nasıl güncelleneceği gösterilmektedir:
var tableID = “TABLE_ID
”; var tableName = "tables/" + tableID; var requests = [ {row: {name: "tables/TABLE_ID
/rows/ROW_ID_1
", values: {"Column": "WORLD"}}}, {row: {name: "tables/TABLE_ID
/rows/ROW_ID_2
", values: {"Column": "WORLD"}}}, {row: {name: "tables/TABLE_ID
/rows/ROW_ID_3
", values: {"Column": "WORLD"}}}, ]; var response = Area120Tables.Tables.Rows.batchUpdate({requests: requests}, tableName); Logger.log("Batch update rows:" + JSON.stringify(response));
Tablodaki bir satırı silme
Aşağıdaki örnekte bir tablodan tek bir satırın nasıl silineceği gösterilmektedir:
var rowName = "tables/TABLE_ID
/rows/ROW_ID
"; var response = Area120Tables.Tables.Rows.remove(rowName); Logger.log("Delete row:" + JSON.stringify(response));
Tablodaki birden fazla satırı silme
Aşağıdaki örnekte, bir tablodaki birden fazla satırın nasıl silineceği gösterilmektedir:
var tableID = “TABLE_ID
”; var tableName = "tables/" + tableID; var rowNames = [ "tables/TABLE_ID
/rows/ROW_ID_1
", "tables/TABLE_ID
/rows/ROW_ID_2
", "tables/TABLE_ID
/rows/ROW_ID_3
", ]; Area120Tables.Tables.Rows.batchDelete({names: rowNames}, tableName);
Silinen satırları geri yükleme
Silinen satırları Tablolar kullanıcı arayüzünden geri yükleyebilirsiniz. Silinen bir satırı geri yüklemek için aşağıdaki adımları uygulayın:
- Bilgisayarınızda Tablolar web uygulamasını açın.
- Satırları geri yüklemek istediğiniz tabloyu açın.
- En üstte, Silinen satır ve sütunları göster'i tıklayın.
- Silinen satırlar'ı tıklayın.
- Geri yüklemek istediğiniz satırın sağ tarafındaki Çöp kutusundan geri yükle'yi tıklayın.
Çalışma alanlarının listesini alma
Aşağıdaki örnekte, kullanıcının sahip olduğu tüm çalışma alanlarının listesinin nasıl alınacağı gösterilmektedir.
// Get list of workspaces the user owns and lists the tables in each one: var response = Area120Tables.Workspaces.list(); if (response) { var workspaces = response.workspaces; for (var workspace of workspaces){ Logger.log(workspace.displayName); for (var table of workspace.tables) { Logger.log('Table: ' + table); } } }
Aşağıda çıkış günlüklerine dair bir örnek verilmiştir:
My Workspace Table: Table 1 Table: Table 2 My TODOs Table: Tasks