Class DataSourceTable

ตารางแหล่งข้อมูล

เข้าถึงและแก้ไขตารางแหล่งข้อมูลที่มีอยู่ หากต้องการสร้างตารางแหล่งข้อมูลใหม่ในชีตใหม่ ให้ใช้ Spreadsheet.insertSheetWithDataSourceTable(spec)

ใช้คลาสนี้กับแหล่งข้อมูล BigQuery เท่านั้น

ตัวอย่างนี้แสดงวิธีสร้างตารางแหล่งข้อมูลใหม่

SpreadsheetApp.enableBigQueryExecution();
const spreadsheet = SpreadsheetApp.getActive();
const spec = SpreadsheetApp.newDataSourceSpec()
                 .asBigQuery()
                 .setProjectId('big_query_project')
                 .setRawQuery('select @FIELD from table limit @LIMIT')
                 .setParameterFromCell('FIELD', 'Sheet1!A1')
                 .setParameterFromCell('LIMIT', 'namedRangeCell')
                 .build();
// Starts data execution asynchronously.
const dataSheet = spreadsheet.insertSheetWithDataSourceTable(spec);
const dataSourceTable = dataSheet.getDataSourceTables()[0];
// waitForCompletion() blocks script execution until data execution completes.
dataSourceTable.waitForCompletion(60);
// Check status after execution.
Logger.log(
    'Data execution state: %s.',
    dataSourceTable.getStatus().getExecutionState(),
);

ตัวอย่างนี้แสดงวิธีแก้ไขแหล่งข้อมูล

SpreadsheetApp.enableBigQueryExecution();
const dataSheet = SpreadsheetApp.getActive().getSheetByName('Data Sheet 1');
const dataSourceTable = dataSheet.getDataSourceTables()[0];
const dataSource = dataSourceTable.getDataSource();
const newSpec = dataSource.getSpec()
                    .copy()
                    .asBigQuery()
                    .setRawQuery('select name from table limit 2')
                    .removeAllParameters()
                    .build();
// Updates data source specification and starts data execution asynchronously.
dataSource.updateSpec(newSpec);
// Check status during execution.
Logger.log(
    'Data execution state: %s.',
    dataSourceTable.getStatus().getExecutionState(),
);
// waitForCompletion() blocks script execution until data execution completes.
dataSourceTable.waitForCompletion(60);
// Check status after execution.
Logger.log(
    'Data execution state: %s.',
    dataSourceTable.getStatus().getExecutionState(),
);

เมธอด

วิธีการประเภทการแสดงผลรายละเอียดแบบย่อ
addColumns(columnNames)DataSourceTableเพิ่มคอลัมน์ลงในตารางแหล่งข้อมูล
addFilter(columnName, filterCriteria)DataSourceTableเพิ่มตัวกรองที่ใช้กับตารางแหล่งข้อมูล
addSortSpec(columnName, ascending)DataSourceTableเพิ่มข้อกำหนดการจัดเรียงในคอลัมน์ในตารางแหล่งข้อมูล
addSortSpec(columnName, sortOrder)DataSourceTableเพิ่มข้อกำหนดการจัดเรียงในคอลัมน์ในตารางแหล่งข้อมูล
cancelDataRefresh()DataSourceTableยกเลิกการรีเฟรชข้อมูลที่เชื่อมโยงกับออบเจ็กต์นี้หากกำลังทำงานอยู่
forceRefreshData()DataSourceTableรีเฟรชข้อมูลของออบเจ็กต์นี้โดยไม่คำนึงถึงสถานะปัจจุบัน
getColumns()DataSourceTableColumn[]รับคอลัมน์แหล่งข้อมูลทั้งหมดที่เพิ่มลงในตารางแหล่งข้อมูล
getDataSource()DataSourceรับแหล่งข้อมูลที่ออบเจ็กต์ลิงก์อยู่
getFilters()DataSourceTableFilter[]แสดงตัวกรองทั้งหมดที่ใช้กับตารางแหล่งข้อมูล
getRange()RangeรับRangeตารางแหล่งข้อมูลนี้ครอบคลุม
getRowLimit()Integer|nullแสดงผลขีดจํากัดแถวสําหรับตารางแหล่งข้อมูล
getSortSpecs()SortSpec[]รับข้อกำหนดการจัดเรียงทั้งหมดในตารางแหล่งข้อมูล
getStatus()DataExecutionStatusรับสถานะการดำเนินการข้อมูลของออบเจ็กต์
isSyncingAllColumns()Booleanแสดงว่าตารางแหล่งข้อมูลกำลังซิงค์คอลัมน์ทั้งหมดในแหล่งข้อมูลที่เชื่อมโยงอยู่หรือไม่
refreshData()DataSourceTableรีเฟรชข้อมูลของออบเจ็กต์
removeAllColumns()DataSourceTableนำคอลัมน์ทั้งหมดในตารางแหล่งข้อมูลออก
removeAllSortSpecs()DataSourceTableนำข้อกำหนดการจัดเรียงทั้งหมดในตารางแหล่งข้อมูลออก
setRowLimit(rowLimit)DataSourceTableอัปเดตขีดจํากัดแถวสําหรับตารางแหล่งข้อมูล
syncAllColumns()DataSourceTableซิงค์คอลัมน์ทั้งหมดในปัจจุบันและอนาคตในแหล่งข้อมูลที่เชื่อมโยงกับตารางแหล่งข้อมูล
waitForCompletion(timeoutInSeconds)DataExecutionStatusรอจนกว่าการดำเนินการปัจจุบันจะเสร็จสมบูรณ์ โดยจะหมดเวลาหลังจากผ่านไปตามจำนวนวินาทีที่ระบุ

เอกสารโดยละเอียด

addColumns(columnNames)

เพิ่มคอลัมน์ลงในตารางแหล่งข้อมูล

พารามิเตอร์

ชื่อประเภทคำอธิบาย
columnNamesString[]รายการชื่อคอลัมน์ที่จะเพิ่ม

รีเทิร์น

DataSourceTable - ตารางแหล่งข้อมูลสำหรับการเชื่อมโยง

การให้สิทธิ์

สคริปต์ที่ใช้วิธีนี้ต้องมีการให้สิทธิ์ที่มีขอบเขตต่อไปนี้อย่างน้อย 1 รายการ

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

addFilter(columnName, filterCriteria)

เพิ่มตัวกรองที่ใช้กับตารางแหล่งข้อมูล

พารามิเตอร์

ชื่อประเภทคำอธิบาย
columnNameStringชื่อของคอลัมน์ที่จะใช้ตัวกรองนี้
filterCriteriaFilterCriteriaเกณฑ์การกรองที่จะใช้

รีเทิร์น

DataSourceTable - ตารางแหล่งข้อมูลสำหรับการเชื่อมโยง

การให้สิทธิ์

สคริปต์ที่ใช้วิธีนี้ต้องมีการให้สิทธิ์ที่มีขอบเขตต่อไปนี้อย่างน้อย 1 รายการ

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

addSortSpec(columnName, ascending)

เพิ่มข้อกำหนดการจัดเรียงในคอลัมน์ในตารางแหล่งข้อมูล

พารามิเตอร์

ชื่อประเภทคำอธิบาย
columnNameStringชื่อคอลัมน์ที่จะจัดเรียง
ascendingBooleanหากเป็น true ให้จัดเรียงคอลัมน์จากน้อยไปมาก หากเป็น false ให้จัดเรียงคอลัมน์จากมากไปน้อย

รีเทิร์น

DataSourceTable - ชีตแหล่งข้อมูลสำหรับการเชื่อมโยง

การให้สิทธิ์

สคริปต์ที่ใช้วิธีนี้ต้องมีการให้สิทธิ์ที่มีขอบเขตต่อไปนี้อย่างน้อย 1 รายการ

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

addSortSpec(columnName, sortOrder)

เพิ่มข้อกำหนดการจัดเรียงในคอลัมน์ในตารางแหล่งข้อมูล

พารามิเตอร์

ชื่อประเภทคำอธิบาย
columnNameStringชื่อคอลัมน์ที่จะจัดเรียง
sortOrderSortOrderลำดับการจัดเรียง

รีเทิร์น

DataSourceTable - ชีตแหล่งข้อมูลสำหรับการเชื่อมโยง

การให้สิทธิ์

สคริปต์ที่ใช้วิธีนี้ต้องมีการให้สิทธิ์ที่มีขอบเขตต่อไปนี้อย่างน้อย 1 รายการ

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

cancelDataRefresh()

ยกเลิกการรีเฟรชข้อมูลที่เชื่อมโยงกับออบเจ็กต์นี้หากกำลังทำงานอยู่

ตัวอย่างนี้แสดงวิธียกเลิกการรีเฟรชสูตร

const spreadsheet = SpreadsheetApp.getActive();
const formula = spreadsheet.getDataSourceFormulas()[0];
// Cancel the ongoing refresh on the formula.
formula.cancelDataRefresh();

แสดงข้อยกเว้นหากไม่ได้เปิดใช้ประเภทแหล่งข้อมูล ใช้วิธีการ SpreadsheetApp#enable...Execution() เพื่อเปิดใช้การเรียกใช้ข้อมูลสำหรับแหล่งข้อมูลประเภทใดประเภทหนึ่ง

รีเทิร์น

DataSourceTable — ออบเจ็กต์ข้อมูล

การให้สิทธิ์

สคริปต์ที่ใช้วิธีนี้ต้องมีการให้สิทธิ์ที่มีขอบเขตต่อไปนี้อย่างน้อย 1 รายการ

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

forceRefreshData()

รีเฟรชข้อมูลของออบเจ็กต์นี้โดยไม่คำนึงถึงสถานะปัจจุบัน ดูรายละเอียดเพิ่มเติมได้ที่ refreshData() หากต้องการยกเลิกการรีเฟรชออบเจ็กต์นี้ที่กำลังดำเนินการอยู่ โปรดดูcancelDataRefresh()

แสดงข้อยกเว้นหากไม่ได้เปิดใช้ประเภทแหล่งข้อมูล ใช้วิธีการ SpreadsheetApp#enable...Execution() เพื่อเปิดใช้การเรียกใช้ข้อมูลสำหรับแหล่งข้อมูลประเภทใดประเภทหนึ่ง

รีเทิร์น

DataSourceTable — ออบเจ็กต์ข้อมูล

การให้สิทธิ์

สคริปต์ที่ใช้วิธีนี้ต้องมีการให้สิทธิ์ที่มีขอบเขตต่อไปนี้อย่างน้อย 1 รายการ

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

getColumns()

รับคอลัมน์แหล่งข้อมูลทั้งหมดที่เพิ่มลงในตารางแหล่งข้อมูล

รีเทิร์น

DataSourceTableColumn[] — รายการคอลัมน์ตารางแหล่งข้อมูล

การให้สิทธิ์

สคริปต์ที่ใช้วิธีนี้ต้องมีการให้สิทธิ์ที่มีขอบเขตต่อไปนี้อย่างน้อย 1 รายการ

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

getDataSource()

รับแหล่งข้อมูลที่ออบเจ็กต์ลิงก์อยู่

รีเทิร์น

DataSource — แหล่งข้อมูล

การให้สิทธิ์

สคริปต์ที่ใช้วิธีนี้ต้องมีการให้สิทธิ์ที่มีขอบเขตต่อไปนี้อย่างน้อย 1 รายการ

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

getFilters()

แสดงตัวกรองทั้งหมดที่ใช้กับตารางแหล่งข้อมูล

รีเทิร์น

DataSourceTableFilter[] — อาร์เรย์ของตัวกรองทั้งหมดที่ใช้กับตารางแหล่งข้อมูล

การให้สิทธิ์

สคริปต์ที่ใช้วิธีนี้ต้องมีการให้สิทธิ์ที่มีขอบเขตต่อไปนี้อย่างน้อย 1 รายการ

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

getRange()

รับRangeตารางแหล่งข้อมูลนี้ครอบคลุม

รีเทิร์น

Range — ช่วง

การให้สิทธิ์

สคริปต์ที่ใช้วิธีนี้ต้องมีการให้สิทธิ์ที่มีขอบเขตต่อไปนี้อย่างน้อย 1 รายการ

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

getRowLimit()

แสดงผลขีดจํากัดแถวสําหรับตารางแหล่งข้อมูล

รีเทิร์น

Integer|null — ขีดจํากัดแถวสําหรับตารางแหล่งข้อมูล หรือ null หากไม่ได้ตั้งค่าขีดจํากัดและ ตารางใช้ขีดจํากัดสูงสุดเริ่มต้นตามที่อยู่ใน UI ของ Google ชีต

การให้สิทธิ์

สคริปต์ที่ใช้วิธีนี้ต้องมีการให้สิทธิ์ที่มีขอบเขตต่อไปนี้อย่างน้อย 1 รายการ

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

getSortSpecs()

รับข้อกำหนดการจัดเรียงทั้งหมดในตารางแหล่งข้อมูล

รีเทิร์น

SortSpec[] — รายการข้อกำหนดการจัดเรียง

การให้สิทธิ์

สคริปต์ที่ใช้วิธีนี้ต้องมีการให้สิทธิ์ที่มีขอบเขตต่อไปนี้อย่างน้อย 1 รายการ

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

getStatus()

รับสถานะการดำเนินการข้อมูลของออบเจ็กต์

รีเทิร์น

DataExecutionStatus — สถานะการเรียกใช้ข้อมูล

การให้สิทธิ์

สคริปต์ที่ใช้วิธีนี้ต้องมีการให้สิทธิ์ที่มีขอบเขตต่อไปนี้อย่างน้อย 1 รายการ

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

isSyncingAllColumns()

แสดงว่าตารางแหล่งข้อมูลกำลังซิงค์คอลัมน์ทั้งหมดในแหล่งข้อมูลที่เชื่อมโยงอยู่หรือไม่

รีเทิร์น

BooleanTrue หากตารางแหล่งข้อมูลกำลังซิงค์คอลัมน์ทั้งหมดในแหล่งข้อมูลที่เชื่อมโยง หรือ false ในกรณีอื่นๆ

การให้สิทธิ์

สคริปต์ที่ใช้วิธีนี้ต้องมีการให้สิทธิ์ที่มีขอบเขตต่อไปนี้อย่างน้อย 1 รายการ

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

refreshData()

รีเฟรชข้อมูลของออบเจ็กต์

ส่งข้อยกเว้นหากอยู่ในสถานะ error ใช้ DataSource#updateSpec() เพื่ออัปเดตข้อกำหนด วิธีนี้forceRefreshData()ดีกว่าforceRefreshData()เพื่อป้องกันการแก้ไขแหล่งข้อมูลโดยไม่คาดคิด

แสดงข้อยกเว้นหากไม่ได้เปิดใช้ประเภทแหล่งข้อมูล ใช้วิธีการ SpreadsheetApp#enable...Execution() เพื่อเปิดใช้การเรียกใช้ข้อมูลสำหรับแหล่งข้อมูลประเภทใดประเภทหนึ่ง

รีเทิร์น

DataSourceTable — ออบเจ็กต์ข้อมูล

การให้สิทธิ์

สคริปต์ที่ใช้วิธีนี้ต้องมีการให้สิทธิ์ที่มีขอบเขตต่อไปนี้อย่างน้อย 1 รายการ

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

removeAllColumns()

นำคอลัมน์ทั้งหมดในตารางแหล่งข้อมูลออก

รีเทิร์น

DataSourceTable - ตารางแหล่งข้อมูลสำหรับการเชื่อมโยง

การให้สิทธิ์

สคริปต์ที่ใช้วิธีนี้ต้องมีการให้สิทธิ์ที่มีขอบเขตต่อไปนี้อย่างน้อย 1 รายการ

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

removeAllSortSpecs()

นำข้อกำหนดการจัดเรียงทั้งหมดในตารางแหล่งข้อมูลออก

รีเทิร์น

DataSourceTable - ชีตแหล่งข้อมูลสำหรับการเชื่อมโยง

การให้สิทธิ์

สคริปต์ที่ใช้วิธีนี้ต้องมีการให้สิทธิ์ที่มีขอบเขตต่อไปนี้อย่างน้อย 1 รายการ

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

setRowLimit(rowLimit)

อัปเดตขีดจํากัดแถวสําหรับตารางแหล่งข้อมูล หากขีดจํากัดแถวที่ระบุคือ null จากนั้นจะอัปเดตตารางแหล่งข้อมูลให้ใช้ขีดจํากัดแถวสูงสุดเริ่มต้นตามที่อยู่ใน UI ของ Google ชีต

พารามิเตอร์

ชื่อประเภทคำอธิบาย
rowLimitIntegerขีดจํากัดแถวใหม่สําหรับตารางข้อมูล หากเป็น null จะอัปเดตตารางให้ใช้ ขีดจํากัดแถวเริ่มต้น

รีเทิร์น

DataSourceTable - ตารางแหล่งข้อมูลสำหรับการเชื่อมโยง

การให้สิทธิ์

สคริปต์ที่ใช้วิธีนี้ต้องมีการให้สิทธิ์ที่มีขอบเขตต่อไปนี้อย่างน้อย 1 รายการ

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

syncAllColumns()

ซิงค์คอลัมน์ทั้งหมดในปัจจุบันและอนาคตในแหล่งข้อมูลที่เชื่อมโยงกับตารางแหล่งข้อมูล

รีเทิร์น

DataSourceTable - ตารางแหล่งข้อมูลสำหรับการเชื่อมโยง

การให้สิทธิ์

สคริปต์ที่ใช้วิธีนี้ต้องมีการให้สิทธิ์ที่มีขอบเขตต่อไปนี้อย่างน้อย 1 รายการ

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

waitForCompletion(timeoutInSeconds)

รอจนกว่าการดำเนินการปัจจุบันจะเสร็จสมบูรณ์ โดยจะหมดเวลาหลังจากผ่านไปตามจำนวนวินาทีที่ระบุ โยนข้อยกเว้นหากการดำเนินการไม่เสร็จสมบูรณ์เมื่อหมดเวลา แต่จะไม่ยกเลิก การดำเนินการข้อมูล

พารามิเตอร์

ชื่อประเภทคำอธิบาย
timeoutInSecondsIntegerเวลารอการเรียกใช้ข้อมูลเป็นวินาที สูงสุดคือ 300 วินาที

รีเทิร์น

DataExecutionStatus — สถานะการเรียกใช้ข้อมูล

การให้สิทธิ์

สคริปต์ที่ใช้วิธีนี้ต้องมีการให้สิทธิ์ที่มีขอบเขตต่อไปนี้อย่างน้อย 1 รายการ

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets