Class Ui

Ui

อินสแตนซ์ของสภาพแวดล้อมอินเทอร์เฟซผู้ใช้สำหรับแอป Google ที่อนุญาตให้สคริปต์เพิ่ม ฟีเจอร์ต่างๆ เช่น เมนู กล่องโต้ตอบ และแถบด้านข้าง สคริปต์สามารถโต้ตอบกับ UI สำหรับ อินสแตนซ์ปัจจุบันของเครื่องมือแก้ไขแบบเปิด และเฉพาะเมื่อสคริปต์มีการผูกกับคอนเทนเนอร์กับเครื่องมือแก้ไขเท่านั้น

// Display a dialog box with a title, message, input field, and "Yes" and "No" buttons. The
// user can also close the dialog by clicking the close button in its title bar.
var ui = SpreadsheetApp.getUi();
var response = ui.prompt('Getting to know you', 'May I know your name?', ui.ButtonSet.YES_NO);

// Process the user's response.
if (response.getSelectedButton() == ui.Button.YES) {
  Logger.log('The user\'s name is %s.', response.getResponseText());
} else if (response.getSelectedButton() == ui.Button.NO) {
  Logger.log('The user didn\'t want to provide a name.');
} else {
  Logger.log('The user clicked the close button in the dialog\'s title bar.');
}

พร็อพเพอร์ตี้

พร็อพเพอร์ตี้ประเภทคำอธิบาย
ButtonButtonenum ที่แสดงปุ่มกล่องโต้ตอบที่แปลแล้วและกำหนดไว้ล่วงหน้าซึ่งส่งกลับมาโดยการแจ้งเตือนหรือ PromptResponse.getSelectedButton() เพื่อระบุ ปุ่มใดในกล่องโต้ตอบที่ผู้ใช้คลิก
ButtonSetButtonSetEnum แสดงชุดปุ่มกล่องโต้ตอบอย่างน้อยหนึ่งปุ่มที่กำหนดไว้ล่วงหน้าและเป็นภาษาท้องถิ่นที่สามารถ เพิ่มลงในการแจ้งเตือนหรือข้อความแจ้งแล้ว

เมธอด

วิธีการประเภทการแสดงผลรายละเอียดแบบย่อ
alert(prompt)Buttonเปิดกล่องโต้ตอบในเครื่องมือแก้ไขของผู้ใช้ที่มีข้อความที่ระบุและ "ตกลง"
alert(prompt, buttons)Buttonเปิดกล่องโต้ตอบในเครื่องมือแก้ไขของผู้ใช้ที่มีข้อความและชุดปุ่มที่กำหนด
alert(title, prompt, buttons)Buttonเปิดกล่องโต้ตอบในเครื่องมือแก้ไขของผู้ใช้ที่มีชื่อ ข้อความ และชุดปุ่มที่กำหนด
createAddonMenu()Menuสร้างเครื่องมือสร้างที่สามารถใช้แทรกเมนูย่อยลงในเมนูส่วนขยายของเครื่องมือแก้ไข
createMenu(caption)Menuสร้างเครื่องมือสร้างที่ใช้เพื่อเพิ่มเมนูลงในอินเทอร์เฟซผู้ใช้ของเครื่องมือแก้ไขได้
prompt(prompt)PromptResponseเปิดกล่องโต้ตอบอินพุตในเครื่องมือแก้ไขของผู้ใช้ที่มีข้อความที่ระบุและ "ตกลง"
prompt(prompt, buttons)PromptResponseเปิดกล่องโต้ตอบอินพุตในเครื่องมือแก้ไขของผู้ใช้ที่มีข้อความและชุดปุ่มที่กำหนด
prompt(title, prompt, buttons)PromptResponseเปิดกล่องโต้ตอบอินพุตในเครื่องมือแก้ไขของผู้ใช้ที่มีชื่อ ข้อความ และชุดของ
showModalDialog(userInterface, title)voidเปิดกล่องโต้ตอบโมดัลในเครื่องมือแก้ไขของผู้ใช้ โดยมีเนื้อหาฝั่งไคลเอ็นต์ที่กำหนดเอง
showModelessDialog(userInterface, title)voidเปิดกล่องโต้ตอบแบบไร้โหมดในเครื่องมือแก้ไขของผู้ใช้ที่มีเนื้อหาฝั่งไคลเอ็นต์ที่กำหนดเอง
showSidebar(userInterface)voidเปิดแถบด้านข้างในตัวแก้ไขของผู้ใช้ด้วยเนื้อหาฝั่งไคลเอ็นต์ที่กําหนดเอง

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

alert(prompt)

เปิดกล่องโต้ตอบในเครื่องมือแก้ไขของผู้ใช้ที่มีข้อความที่ระบุและ "ตกลง" วิธีนี้ ระงับสคริปต์ฝั่งเซิร์ฟเวอร์ขณะที่กล่องโต้ตอบเปิดอยู่ สคริปต์จะกลับมาทำงานอีกครั้งหลังจากผู้ใช้ ปิดกล่องโต้ตอบ แต่Jdbc การเชื่อมต่อและล็อก LockService ไม่ คงอยู่ตลอดการระงับ ดูข้อมูลเพิ่มเติมได้ที่คำแนะนำเกี่ยวกับกล่องโต้ตอบและแถบด้านข้าง

// Display "Hello, world" in a dialog box with an "OK" button. The user can also close the
// dialog by clicking the close button in its title bar.
SpreadsheetApp.getUi().alert('Hello, world');

พารามิเตอร์

ชื่อประเภทคำอธิบาย
promptStringข้อความที่จะแสดงในกล่องโต้ตอบ

รีเทิร์น

Button — ปุ่มที่ผู้ใช้คลิก


alert(prompt, buttons)

เปิดกล่องโต้ตอบในเครื่องมือแก้ไขของผู้ใช้ที่มีข้อความและชุดปุ่มที่กำหนด วิธีนี้ ระงับสคริปต์ฝั่งเซิร์ฟเวอร์ขณะที่กล่องโต้ตอบเปิดอยู่ สคริปต์จะกลับมาทำงานอีกครั้งหลังจากผู้ใช้ ปิดกล่องโต้ตอบ แต่Jdbc การเชื่อมต่อและล็อก LockService ไม่ คงอยู่ตลอดการระงับ ดูข้อมูลเพิ่มเติมได้ที่คำแนะนำเกี่ยวกับกล่องโต้ตอบและแถบด้านข้าง

// Display a dialog box with a message and "Yes" and "No" buttons. The user can also close the
// dialog by clicking the close button in its title bar.
var ui = SpreadsheetApp.getUi();
var response = ui.alert('Are you sure you want to continue?', ui.ButtonSet.YES_NO);

// Process the user's response.
if (response == ui.Button.YES) {
  Logger.log('The user clicked "Yes."');
} else {
  Logger.log('The user clicked "No" or the close button in the dialog\'s title bar.');
}

พารามิเตอร์

ชื่อประเภทคำอธิบาย
promptStringข้อความที่จะแสดงในกล่องโต้ตอบ
buttonsButtonSetปุ่มที่ตั้งค่าให้แสดงในกล่องโต้ตอบ

รีเทิร์น

Button — ปุ่มที่ผู้ใช้คลิก


alert(title, prompt, buttons)

เปิดกล่องโต้ตอบในเครื่องมือแก้ไขของผู้ใช้ที่มีชื่อ ข้อความ และชุดปุ่มที่กำหนด ช่วงเวลานี้ จะระงับสคริปต์ฝั่งเซิร์ฟเวอร์ขณะที่กล่องโต้ตอบเปิดอยู่ สคริปต์จะกลับมาทำงานอีกครั้งหลังจาก ผู้ใช้ปิดกล่องโต้ตอบ แต่ Jdbc การเชื่อมต่อและล็อก LockService ไม่ คงอยู่ตลอดการระงับ ดูข้อมูลเพิ่มเติมได้ที่คำแนะนำเกี่ยวกับกล่องโต้ตอบและแถบด้านข้าง

// Display a dialog box with a title, message, and "Yes" and "No" buttons. The user can also
// close the dialog by clicking the close button in its title bar.
var ui = SpreadsheetApp.getUi();
var response = ui.alert('Confirm', 'Are you sure you want to continue?', ui.ButtonSet.YES_NO);

// Process the user's response.
if (response == ui.Button.YES) {
  Logger.log('The user clicked "Yes."');
} else {
  Logger.log('The user clicked "No" or the close button in the dialog\'s title bar.');
}

พารามิเตอร์

ชื่อประเภทคำอธิบาย
titleStringชื่อที่จะแสดงเหนือกล่องโต้ตอบ
promptStringข้อความที่จะแสดงในกล่องโต้ตอบ
buttonsButtonSetปุ่มที่ตั้งค่าให้แสดงในกล่องโต้ตอบ

รีเทิร์น

Button — ปุ่มที่ผู้ใช้คลิก


createAddonMenu()

สร้างเครื่องมือสร้างที่สามารถใช้แทรกเมนูย่อยลงในเมนูส่วนขยายของเครื่องมือแก้ไข เมนูจะไม่ได้รับการอัปเดตจนกว่าจะมีการเรียกใช้ Menu.addToUi() หากสคริปต์ทำงานอยู่ ชื่อเมนูย่อยเป็นส่วนเสริม ชื่อเมนูย่อยจะตรงกับชื่อส่วนเสริมในเว็บสโตร์ หากสคริปต์เชื่อมโยงกับเอกสารโดยตรง ชื่อเมนูย่อย ตรงกับชื่อสคริปต์ ดูข้อมูลเพิ่มเติมได้ในคำแนะนำเกี่ยวกับเมนู

// Add an item to the Add-on menu, under a sub-menu whose name is set automatically.
function onOpen(e) {
  SpreadsheetApp.getUi()
      .createAddonMenu()
      .addItem('Show', 'showSidebar')
      .addToUi();
}

รีเทิร์น

Menu — เครื่องมือสร้างเมนูใหม่


createMenu(caption)

สร้างเครื่องมือสร้างที่ใช้เพิ่มเมนูลงในอินเทอร์เฟซผู้ใช้ของเครื่องมือแก้ไขได้ เมนูไม่ จะถูกเพิ่มจริงจนกว่าจะมีการเรียกใช้ Menu.addToUi() ดูข้อมูลเพิ่มเติมได้ในคำแนะนำเกี่ยวกับเมนู ป้ายกำกับสำหรับเมนูระดับบนสุดควรเป็น ในรูปแบบตัวอักษรพาดหัว (คำหลักทั้งหมดที่เป็นตัวพิมพ์ใหญ่) แม้ว่าป้ายกำกับของเมนูย่อยควรอยู่ในรูปแบบ ลักษณะตัวพิมพ์ของประโยค (เฉพาะคำแรกที่เป็นตัวพิมพ์ใหญ่) หากเผยแพร่สคริปต์เป็นส่วนเสริม ระบบจะไม่สนใจพารามิเตอร์ caption และพารามิเตอร์ เพิ่มเป็นเมนูย่อยของเมนูส่วนขยายแล้ว ซึ่งเทียบเท่ากับ createAddonMenu()

// Add a custom menu to the active document, including a separator and a sub-menu.
function onOpen(e) {
  SpreadsheetApp.getUi()
      .createMenu('My Menu')
      .addItem('My menu item', 'myFunction')
      .addSeparator()
      .addSubMenu(SpreadsheetApp.getUi().createMenu('My sub-menu')
          .addItem('One sub-menu item', 'mySecondFunction')
          .addItem('Another sub-menu item', 'myThirdFunction'))
      .addToUi();
}

พารามิเตอร์

ชื่อประเภทคำอธิบาย
captionStringป้ายกำกับสำหรับเมนู ซึ่งคำสำคัญทั้งหมดเป็นตัวพิมพ์ใหญ่สำหรับเมนูระดับบนสุด หรือเฉพาะคำแรกที่เป็นตัวพิมพ์ใหญ่สำหรับเมนูย่อย

รีเทิร์น

Menu — เครื่องมือสร้างเมนูใหม่


prompt(prompt)

เปิดกล่องโต้ตอบอินพุตในเครื่องมือแก้ไขของผู้ใช้ที่มีข้อความที่ระบุและปุ่ม "ตกลง" ช่วงเวลานี้ จะระงับสคริปต์ฝั่งเซิร์ฟเวอร์ขณะที่กล่องโต้ตอบเปิดอยู่ สคริปต์จะกลับมาทำงานอีกครั้งหลังจาก ผู้ใช้ปิดกล่องโต้ตอบ แต่ Jdbc การเชื่อมต่อและล็อก LockService ไม่ คงอยู่ตลอดการระงับ ดูข้อมูลเพิ่มเติมได้ที่คำแนะนำเกี่ยวกับกล่องโต้ตอบและแถบด้านข้าง

// Display a dialog box with a message, input field, and an "OK" button. The user can also
// close the dialog by clicking the close button in its title bar.
var ui = SpreadsheetApp.getUi();
var response = ui.prompt('Enter your name:');

// Process the user's response.
if (response.getSelectedButton() == ui.Button.OK) {
  Logger.log('The user\'s name is %s.', response.getResponseText());
} else {
  Logger.log('The user clicked the close button in the dialog\'s title bar.');
}

พารามิเตอร์

ชื่อประเภทคำอธิบาย
promptStringข้อความที่จะแสดงในกล่องโต้ตอบ

รีเทิร์น

PromptResponse — การแสดงคำตอบของผู้ใช้


prompt(prompt, buttons)

เปิดกล่องโต้ตอบอินพุตในเครื่องมือแก้ไขของผู้ใช้ที่มีข้อความและชุดปุ่มที่กำหนด ช่วงเวลานี้ จะระงับสคริปต์ฝั่งเซิร์ฟเวอร์ขณะที่กล่องโต้ตอบเปิดอยู่ สคริปต์จะกลับมาทำงานอีกครั้งหลังจาก ผู้ใช้ปิดกล่องโต้ตอบ แต่ Jdbc การเชื่อมต่อและล็อก LockService ไม่ คงอยู่ตลอดการระงับ ดูข้อมูลเพิ่มเติมได้ที่คำแนะนำเกี่ยวกับกล่องโต้ตอบและแถบด้านข้าง

// Display a dialog box with a message, input field, and "Yes" and "No" buttons. The user can
// also close the dialog by clicking the close button in its title bar.
var ui = SpreadsheetApp.getUi();
var response = ui.prompt('May I know your name?', ui.ButtonSet.YES_NO);

// Process the user's response.
if (response.getSelectedButton() == ui.Button.YES) {
  Logger.log('The user\'s name is %s.', response.getResponseText());
} else if (response.getSelectedButton() == ui.Button.NO) {
  Logger.log('The user didn\'t want to provide a name.');
} else {
  Logger.log('The user clicked the close button in the dialog\'s title bar.');
}

พารามิเตอร์

ชื่อประเภทคำอธิบาย
promptStringข้อความที่จะแสดงในกล่องโต้ตอบ
buttonsButtonSetปุ่มที่ตั้งค่าให้แสดงในกล่องโต้ตอบ

รีเทิร์น

PromptResponse — การแสดงคำตอบของผู้ใช้


prompt(title, prompt, buttons)

เปิดกล่องโต้ตอบอินพุตในเครื่องมือแก้ไขของผู้ใช้ที่มีชื่อ ข้อความ และชุดของ วิธีนี้จะระงับสคริปต์ฝั่งเซิร์ฟเวอร์ขณะที่กล่องโต้ตอบเปิดอยู่ สคริปต์ กลับมาทำงานอีกครั้งหลังจากที่ผู้ใช้ปิดกล่องโต้ตอบ แต่การเชื่อมต่อ Jdbc และการล็อก LockService ไม่หายไปใน การระงับ สำหรับข้อมูลเพิ่มเติม โปรดดู คู่มือเพื่อ กล่องโต้ตอบและแถบด้านข้าง

// Display a dialog box with a title, message, input field, and "Yes" and "No" buttons. The
// user can also close the dialog by clicking the close button in its title bar.
var ui = SpreadsheetApp.getUi();
var response = ui.prompt('Getting to know you', 'May I know your name?', ui.ButtonSet.YES_NO);

// Process the user's response.
if (response.getSelectedButton() == ui.Button.YES) {
  Logger.log('The user\'s name is %s.', response.getResponseText());
} else if (response.getSelectedButton() == ui.Button.NO) {
  Logger.log('The user didn\'t want to provide a name.');
} else {
  Logger.log('The user clicked the close button in the dialog\'s title bar.');
}

พารามิเตอร์

ชื่อประเภทคำอธิบาย
titleStringชื่อที่จะแสดงเหนือกล่องโต้ตอบ
promptStringข้อความที่จะแสดงในกล่องโต้ตอบ
buttonsButtonSetปุ่มที่ตั้งค่าให้แสดงในกล่องโต้ตอบ

รีเทิร์น

PromptResponse — การแสดงคำตอบของผู้ใช้


showModalDialog(userInterface, title)

เปิดกล่องโต้ตอบโมดัลในเครื่องมือแก้ไขของผู้ใช้ โดยมีเนื้อหาฝั่งไคลเอ็นต์ที่กำหนดเอง วิธีนี้ทำ ไม่ ระงับสคริปต์ฝั่งเซิร์ฟเวอร์ขณะที่กล่องโต้ตอบเปิดอยู่ เพื่อสื่อสารกับ สคริปต์ฝั่งเซิร์ฟเวอร์ คอมโพเนนต์ฝั่งไคลเอ็นต์ต้องทำการเรียกกลับแบบไม่พร้อมกันโดยใช้ google.script API สำหรับ HtmlService หากต้องการปิดกล่องโต้ตอบ เรียกโปรแกรมโดยเรียก google.script.host.close()ในฝั่งไคลเอ็นต์ของเว็บ HtmlService แอป สำหรับข้อมูลเพิ่มเติม โปรดดูคำแนะนำเกี่ยวกับกล่องโต้ตอบ แถบด้านข้าง

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

// Display a modal dialog box with custom HtmlService content.
var htmlOutput = HtmlService
    .createHtmlOutput('<p>A change of speed, a change of style...</p>')
    .setWidth(250)
    .setHeight(300);
SpreadsheetApp.getUi().showModalDialog(htmlOutput, 'My add-on');

พารามิเตอร์

ชื่อประเภทคำอธิบาย
userInterfaceObjectHtmlOutput แสดงอินเทอร์เฟซที่จะแสดง
titleStringชื่อของกล่องโต้ตอบ จะลบล้างภาพยนตร์/รายการทีวีที่ตั้งค่าไว้โดยเรียกใช้ setTitle() ใน ออบเจ็กต์ userInterface

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

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

  • https://www.googleapis.com/auth/script.container.ui

showModelessDialog(userInterface, title)

เปิดกล่องโต้ตอบแบบไร้โหมดในเครื่องมือแก้ไขของผู้ใช้ที่มีเนื้อหาฝั่งไคลเอ็นต์ที่กำหนดเอง วิธีนี้ ไม่ระงับสคริปต์ฝั่งเซิร์ฟเวอร์ขณะที่กล่องโต้ตอบเปิดอยู่ เพื่อสื่อสารกับ สคริปต์ฝั่งเซิร์ฟเวอร์ คอมโพเนนต์ฝั่งไคลเอ็นต์จะต้องทำการเรียกกลับแบบไม่พร้อมกันโดยใช้ google.script API สำหรับ HtmlService หากต้องการปิดกล่องโต้ตอบ เรียกโปรแกรมโดยเรียก google.script.host.close()ในฝั่งไคลเอ็นต์ของเว็บ HtmlService แอป สำหรับข้อมูลเพิ่มเติม โปรดดูคำแนะนำเกี่ยวกับกล่องโต้ตอบ แถบด้านข้าง

กล่องโต้ตอบแบบไร้โหมดช่วยให้ผู้ใช้โต้ตอบกับเครื่องมือแก้ไขด้านหลังกล่องโต้ตอบได้ ในทางตรงกันข้าม กล่องโต้ตอบโมดัลไม่ได้ ในเกือบทุกกรณี โมดัล กล่องโต้ตอบหรือแถบด้านข้างเป็นตัวเลือกที่ดีกว่ากล่องโต้ตอบแบบไร้โหมด

// Display a modeless dialog box with custom HtmlService content.
var htmlOutput = HtmlService
    .createHtmlOutput('<p>A change of speed, a change of style...</p>')
    .setWidth(250)
    .setHeight(300);
SpreadsheetApp.getUi().showModelessDialog(htmlOutput, 'My add-on');

พารามิเตอร์

ชื่อประเภทคำอธิบาย
userInterfaceObjectHtmlOutput แสดงอินเทอร์เฟซที่จะแสดง
titleStringชื่อของกล่องโต้ตอบ จะลบล้างภาพยนตร์/รายการทีวีที่ตั้งค่าไว้โดยเรียกใช้ setTitle() ใน ออบเจ็กต์ userInterface

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

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

  • https://www.googleapis.com/auth/script.container.ui

showSidebar(userInterface)

เปิดแถบด้านข้างในตัวแก้ไขของผู้ใช้ด้วยเนื้อหาฝั่งไคลเอ็นต์ที่กําหนดเอง วิธีนี้ทำ ไม่ ระงับสคริปต์ฝั่งเซิร์ฟเวอร์ขณะที่แถบด้านข้างเปิดอยู่ เพื่อสื่อสารกับ สคริปต์ฝั่งเซิร์ฟเวอร์ คอมโพเนนต์ฝั่งไคลเอ็นต์ต้องทำการเรียกกลับแบบไม่พร้อมกันโดยใช้ google.script API สำหรับ HtmlService หากต้องการปิดแถบด้านข้าง เรียกโปรแกรมโดยเรียก google.script.host.close()ในฝั่งไคลเอ็นต์ของเว็บ HtmlService แอป สำหรับข้อมูลเพิ่มเติม โปรดดูคำแนะนำเกี่ยวกับกล่องโต้ตอบ แถบด้านข้าง

แถบด้านข้างจะแสดงทางด้านขวาของตัวแก้ไขสำหรับผู้ใช้ที่สภาพแวดล้อมใช้ ภาษาที่อ่านจากซ้ายไปขวาและทางด้านซ้ายของเครื่องมือแก้ไขสำหรับภาษาที่อ่านจากขวาไปซ้าย ทั้งหมด แถบด้านข้างที่แสดงโดยสคริปต์จะมีความกว้าง 300 พิกเซล

// Display a sidebar with custom HtmlService content.
var htmlOutput = HtmlService
    .createHtmlOutput('<p>A change of speed, a change of style...</p>')
    .setTitle('My add-on');
SpreadsheetApp.getUi().showSidebar(htmlOutput);

พารามิเตอร์

ชื่อประเภทคำอธิบาย
userInterfaceObjectHtmlOutput แสดงอินเทอร์เฟซที่จะแสดง

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

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

  • https://www.googleapis.com/auth/script.container.ui

วิธีการที่เลิกใช้งานแล้ว