Layanan tabel

Layanan Tables memungkinkan skrip untuk membaca dan mengedit baris secara terprogram dalam Google Tables.

Referensi

Untuk informasi selengkapnya tentang layanan ini, lihat dokumentasi untuk Tables API. Seperti semua layanan lanjutan di Apps Script, layanan Tables menggunakan objek, metode, dan parameter yang sama dengan API publik. Untuk informasi selengkapnya, lihat Cara tanda tangan metode ditentukan.

Untuk melaporkan masalah dan menemukan dukungan lainnya, lihat Panduan dukungan Tabel.

Kode contoh

Mendapatkan daftar tabel

Contoh berikut menunjukkan cara mendapatkan daftar semua tabel yang dimiliki pengguna.

// Get list of tables the user owns
var response = Area120Tables.Tables.list();
if (response) {
  var tables = response.tables;
  Logger.log(JSON.stringify(tables[0]));
}

Di bawah ini adalah contoh respons, yang mencakup informasi tentang tabel dan definisi kolom tabel:

{
  “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
  ]
}

Respons menyertakan hingga 20 tabel secara default. Untuk mengambil tabel lainnya, beri nomor respons menggunakan parameter page_token dan page_size, yang ditunjukkan di bawah:

// 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});
  }
}

Nilai maksimum parameter page_size untuk tabel listingan adalah 100.

Dapatkan informasi tabel dan definisi kolom

Contoh berikut menunjukkan cara mendapatkan informasi tabel dan definisi kolom tertentu.

var tableID = "TABLE_ID";  // ID for the table
var tableName = "tables/" + tableID;
var response = Area120Tables.Tables.get(tableName);
Logger.log(JSON.stringify(response));

Menemukan ID tabel

Untuk menemukan ID tabel, buka tabel di aplikasi web Tables. Pada URL di bagian atas, ID tabel berada tepat setelah /table/.

Contoh di bawah ini menunjukkan tempat menemukan ID tabel di berbagai URL Tabel:

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

Membaca baris tabel

Contoh berikut menunjukkan cara mendapatkan daftar baris tabel dan membaca nilai kolomnya.

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"]);
  }
}

Contoh respons ditampilkan di bawah ini. Responsnya mencakup daftar baris dalam tabel dan nilai untuk setiap kolom.

{
  “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
  ],
}

Respons menyertakan maksimal 50 baris secara default. Untuk mengambil lebih banyak baris, beri nomor halaman respons menggunakan parameter page_token dan page_size, yang ditunjukkan di bawah:

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});
  }
}

Jika ada halaman lainnya yang tersedia, responsnya menawarkan nextPageToken. Jika tidak, respons tidak ditentukan. Untuk mengambil halaman hasil berikutnya, teruskan nextPageToken ke panggilan daftar berikutnya.

Nilai maksimum parameter page_size adalah 1.000.

Mendapatkan satu baris dari tabel

Contoh berikut menunjukkan cara membaca nilai kolom satu baris dari tabel.

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);
}

Memfilter daftar baris

Untuk memfilter daftar baris agar hanya mendapatkan hasil yang Anda inginkan, gunakan parameter filter. Untuk detail selengkapnya tentang sintaksis dan jenis kolom yang didukung oleh filter, lihat dokumentasi API pemfilteran.

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"]);
  }
}

Responsnya mencakup baris dengan kolom 'Kontak' yang ditetapkan ke 'john.doe@gmail.com'

{
  “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
  ],
}

Membuat baris dalam tabel

Contoh berikut menunjukkan cara menambahkan baris ke tabel.

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);

Saat Anda menentukan nilai yang akan ditetapkan untuk baris baru, kunci dari key-value pair objek harus sama persis dengan judul kolom tabel yang peka huruf besar/kecil, kecuali jika jenis kolom yang dapat ditulis adalah kolom pencarian atau ringkasan. Anda menetapkan nilai untuk kolom pencarian dan ringkasan menggunakan nilai untuk hubungan. Anda harus memperbarui nilai untuk hubungan menggunakan nama hubungan yang ditemukan dalam dialog Relationships.

Nilai yang dapat diterima untuk suatu kolom bergantung pada tipe data kolom:

Jenis kolom Jenis data (baca) Jenis input yang dapat diterima (tulis)
Data standar
Teks String String
Number Number Number
Date Date
Object {
"year": Number,
"month": Number,
"day": Number
}
Date, String (dalam sebagian besar format tanggal)
Data lengkap
Person String (alamat email) String (harus cocok dengan pengguna Google)
Lampiran file Object[] {
"id": String,
"name": String,
"mimeType": String,
"url": String
}
Kolom ini tidak dapat diubah dengan API.
Lokasi Object {
"latitude": Number,
"longitude": Number,
"address": String
}
Object {
"latitude": Number (required),
"longitude": Number (required),
"address": String
}
Entri multimedia
Drop-down String String (harus cocok dengan opsi dropdown)
Tag String[] (array opsi tag) String[] (harus cocok dengan opsi tag)
Kotak centang Boolean Boolean
Checklist String[] (array item daftar) String[] (harus cocok dengan item daftar)
Data tertaut
Hubungan String String: "tables/[LINKED_TABLE_ID]/rows/[LINKED_ROW_ID]"
Cari Tergantung pada jenis kolom sumber. Kolom ini tidak dapat diubah dan akan diperbarui dengan nilai tertaut.
Ringkasan Tergantung pada jenis kolom sumber dan fungsi ringkasan:
Jumlah: Number
Jumlah maksimum pada kolom Jenis tanggal: String
Nilai Daftar: Array
Kolom ini tidak dapat diubah.
Kolom kalkulasi
ID Otomatis Number Kolom ini tidak dapat diubah.
Metadata
Kreator String Kolom ini tidak dapat diubah.
Waktu pembuatan Object {
“seconds”: Number,
“nanos”: Number
}
Kolom ini tidak dapat diubah.
Updater String Kolom ini tidak dapat diubah.
Waktu pembaruan Object {
“seconds”: Number,
“nanos”: Number
}
Kolom ini tidak dapat diubah.

Layanan Tables melakukan upaya terbaik untuk mengonversi nilai yang diberikan agar sesuai dengan jenis kolom. Jika tidak cocok, nilai tidak akan ditetapkan dan dikosongkan untuk baris baru.

Menambahkan beberapa baris ke tabel

Contoh berikut menunjukkan cara menambahkan beberapa baris ke tabel secara bersamaan.

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)

Memperbarui baris dalam tabel

Contoh berikut menunjukkan cara memperbarui nilai dari baris yang ada dalam tabel:

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));
Respons menampilkan baris yang diperbarui.

Menemukan ID baris

Anda dapat menemukan ID untuk baris dengan dua cara:

Mendapatkan ID baris dengan API

Saat membaca baris dari tabel, Anda dapat menggunakan atribut name untuk setiap baris, yang mencakup ID tabel dan baris.

Mendapatkan ID baris dari UI Tables
  1. Buka tabel di aplikasi web Tables.
  2. Klik kanan baris.
  3. Klik Dapatkan link ke baris ini.
  4. Tempelkan URL di suatu tempat agar Anda dapat menyalin ID.
  5. Dalam URL, ID-nya terletak setelah /row/.

Contoh di bawah menunjukkan tempat menemukan ID baris di URL:

https://tables.area120.google.com/table/TABLE_ID/row/ROW_ID

Memperbarui beberapa baris dalam tabel

Contoh berikut menunjukkan cara memperbarui nilai beberapa baris dalam tabel:

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));

Menghapus baris dalam tabel

Contoh berikut menunjukkan cara menghapus satu baris dari tabel:

var rowName = "tables/TABLE_ID/rows/ROW_ID";
var response = Area120Tables.Tables.Rows.remove(rowName);
Logger.log("Delete row:" + JSON.stringify(response));

Menghapus beberapa baris dalam tabel

Contoh berikut menunjukkan cara menghapus beberapa baris dalam tabel:

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);

Memulihkan baris yang dihapus

Anda dapat memulihkan baris yang dihapus dari UI Tables. Untuk memulihkan baris yang dihapus, ikuti langkah-langkah berikut:

  1. Di komputer, buka aplikasi web Tables.
  2. Buka tabel tempat Anda ingin memulihkan barisnya.
  3. Di bagian atas, klik Tampilkan baris dan kolom yang dihapus .
  4. Klik Baris yang dihapus.
  5. Di sebelah kanan baris yang ingin dipulihkan, klik Pulihkan dari sampah .

Mendapatkan daftar ruang kerja

Contoh berikut menunjukkan cara mendapatkan daftar semua ruang kerja yang dimiliki pengguna.

// 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);
    }
  }
}

Berikut adalah contoh log output:

My Workspace
Table: Table 1
Table: Table 2
My TODOs
Table: Tasks