Tables hizmeti, komut dosyalarının Google Tablolar içindeki satırları programatik olarak okumasına ve düzenlemesine olanak tanır.
Referans
Bu hizmet hakkında daha fazla bilgi edinmek için Tables API'yle ilgili belgelere göz atın. Apps Komut Dosyası'ndaki tüm gelişmiş hizmetler gibi Tables hizmeti de herkese açık API ile aynı nesneleri, yöntemleri ve parametreleri kullanır. Daha fazla bilgi için Yöntem imzaları nasıl belirlenir? bölümüne bakın.
Sorunları bildirmek ve diğer destek seçeneklerini öğrenmek için Tables 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 listesini nasıl alacağınız 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ıyla ilgili bilgileri içeren bir 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ıtta varsayılan olarak en fazla 20 tablo bulunur. Daha fazla tablo almak için aşağıda gösterilen page_token
ve page_size
parametrelerini kullanarak yanıtları sayfalara ayı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}); } }
Tabloları listelemek için page_size
parametresinin maksimum değeri 100'dür.
Tablo 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 elde edileceği 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
Bir tablonun kimliğini bulmak için tabloyu Tables web uygulamasında açın. En üstteki URL'de, tablo kimliği /table/
ifadesinden hemen sonra gelir.
Aşağıdaki örnekte, çeşitli Tablolar URL'lerinde tablo kimliğini nerede bulabileceğiniz 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
Bir tablonun satırlarını okuma
Aşağıdaki örnekte, bir tablonun satırlarının nasıl listeleneceği 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"]);
}
}
Aşağıda örnek bir yanıt gösterilmektedir. Yanıtta, tablodaki satırların ve her alanın değerlerinin bir listesi yer alır.
{
“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ıt varsayılan olarak en fazla 50 satır içerir. Daha fazla satır almak için aşağıda gösterilen 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ıt bir nextPageToken
sunar.
Aksi takdirde, yanıt tanımsız olur. Bir sonraki sonuç sayfasını almak için nextPageToken
öğesini bir sonraki liste çağrısına geçirin.
page_size
parametresinin maksimum değeri 1.000'dir.
Tablodan bir satır alma
Aşağıdaki örnekte, tablodan 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ı getirmek amacıyla satır listesini filtrelemek için filter
parametresini kullanın. Filtrenin desteklediği söz dizimi ve sütun türleri hakkında daha fazla ayrıntı için lütfen filtreleme API'si dokümanlarına 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ütununun "can.doe@gmail.com" olarak ayarlandığı satırlara yer verilir.
{
“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 nasıl satır ekleneceği 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 belirttiğinizde, nesne anahtar/değer çiftlerinin anahtarları, tablo sütunlarının büyük/küçük harfe duyarlı başlıklarıyla tam olarak eşleşmelidir (yazılabilir sütunun türü bir arama veya özet sütunu değilse). İlişkinin değerini kullanarak arama ve özet sütunları için değerler ayarlarsınız. İlişkiler iletişim kutusunda bulunan ilişki adını kullanarak ilişkinin 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 edilebilir 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ı ile 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ütun türüne bağlıdır. | Bu alan değiştirilemez ve bağlı değerle güncellenecek. |
Özet | Kaynak sütun türüne ve özet işlevine bağlıdır: Sayı: Number Tarih türü sütununda maksimum sayı: String Liste Değerleri: Array |
Bu alan değiştirilemez. |
Hesaplanan 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, belirli değerleri sütun türüyle eşleşecek şekilde dönüştürmek için en iyi girişimi gerçekleştirir. Veriler eşleşmezse değeri ayarlamaz ve yeni satırlar için boş olarak bırakır.
Tabloya birden çok satır ekleme
Aşağıdaki örnekte, bir tabloya aynı anda nasıl birden fazla satır 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 bir satırın değerlerinin nasıl güncelleneceği gösterilmektedir:
var rowName = "tables/Yanıt, güncellenen satırı döndürür.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 tablodaki satırları okurken her satır için tablo ve satır kimliklerini içeren name
özelliğini kullanabilirsiniz.
Tables kullanıcı arayüzünden satır kimliğini 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 içinde kimlik
/row/
ifadesinden sonra gelir.
Aşağıdaki örnekte, satır kimliğinin URL'de nerede bulunacağı gösterilmektedir:
https://tables.area120.google.com/table/TABLE_ID
/row/ROW_ID
Bir tabloda birden çok satırı güncelleme
Aşağıdaki örnekte, bir tabloda birden çok 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, 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));
Bir tabloda birden çok satırı silme
Aşağıdaki örnekte, bir tablodaki birden çok 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ükle
Silinen satırları Tables 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 Tables web uygulamasını açın.
- Satırları geri yüklemek istediğiniz tabloyu açın.
- En üstte, Silinen satırları 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 bir listesini nasıl alacağınız 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); } } }
Çıkış günlüklerinin bir örneğini aşağıda görebilirsiniz:
My Workspace Table: Table 1 Table: Table 2 My TODOs Table: Tasks