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. const ui = SpreadsheetApp.getUi(); const 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 ที่แสดงปุ่มกล่องโต้ตอบที่แปลแล้วซึ่งกําหนดไว้ล่วงหน้าซึ่งแสดงผลโดย alert หรือ PromptResponse.getSelectedButton() เพื่อระบุปุ่มในกล่องโต้ตอบที่ผู้ใช้คลิก
ButtonSetButtonSetEnum ที่แสดงชุดปุ่มกล่องโต้ตอบที่แปลแล้วอย่างน้อย 1 ชุดซึ่งกําหนดไว้ล่วงหน้าและสามารถเพิ่มลงในการแจ้งเตือนหรือข้อความแจ้ง

เมธอด

วิธีการประเภทการแสดงผลรายละเอียดแบบย่อ
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. const ui = SpreadsheetApp.getUi(); const 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. const ui = SpreadsheetApp.getUi(); const 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. const ui = SpreadsheetApp.getUi(); const 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. const ui = SpreadsheetApp.getUi(); const 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. const ui = SpreadsheetApp.getUi(); const 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. const 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. const 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. const 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

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