Class Ui

Giao diện người dùng

Một thực thể của môi trường giao diện người dùng cho một Ứng dụng Google cho phép tập lệnh thêm các tính năng như trình đơn, hộp thoại và thanh bên. Một tập lệnh chỉ có thể tương tác với giao diện người dùng cho bản sao hiện tại của một trình chỉnh sửa đang mở và chỉ khi tập lệnh được liên kết với vùng chứa với trình chỉnh sửa.

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

Thuộc tính

Tài sảnLoạiNội dung mô tả
ButtonButtonMột enum đại diện cho các nút hộp thoại đã xác định trước, đã bản địa hoá do một cảnh báo hoặc PromptResponse.getSelectedButton() trả về để cho biết nút nào trong hộp thoại mà người dùng đã nhấp vào.
ButtonSetButtonSetMột enum đại diện cho tập hợp một hoặc nhiều nút hộp thoại đã được bản địa hoá và xác định trước có thể được thêm vào cảnh báo hoặc lời nhắc.

Phương thức

Phương thứcKiểu dữ liệu trả vềMô tả ngắn
alert(prompt)ButtonMở một hộp thoại trong trình chỉnh sửa của người dùng với thông báo đã cho và nút "OK".
alert(prompt, buttons)ButtonMở hộp thoại trong trình chỉnh sửa của người dùng với thông báo đã cho và một bộ nút.
alert(title, prompt, buttons)ButtonMở một hộp thoại trong trình chỉnh sửa của người dùng với tiêu đề, thông báo và tập hợp nút đã cho.
createAddonMenu()MenuTạo một trình tạo có thể dùng để chèn trình đơn phụ vào trình đơn Tiện ích của trình chỉnh sửa.
createMenu(caption)MenuTạo một trình tạo có thể dùng để thêm trình đơn vào giao diện người dùng của trình chỉnh sửa.
prompt(prompt)PromptResponseMở hộp thoại nhập dữ liệu trong trình chỉnh sửa của người dùng với thông báo đã cho và nút "OK".
prompt(prompt, buttons)PromptResponseMở hộp thoại nhập dữ liệu trong trình chỉnh sửa của người dùng với thông báo đã cho và một bộ nút.
prompt(title, prompt, buttons)PromptResponseMở hộp thoại nhập dữ liệu trong trình chỉnh sửa của người dùng với tiêu đề, thông báo và tập hợp nút đã cho.
showModalDialog(userInterface, title)voidMở hộp thoại phương thức trong trình chỉnh sửa của người dùng có nội dung phía máy khách tuỳ chỉnh.
showModelessDialog(userInterface, title)voidMở hộp thoại không chế độ trong trình chỉnh sửa của người dùng có nội dung tuỳ chỉnh phía máy khách.
showSidebar(userInterface)voidMở một thanh bên trong trình chỉnh sửa của người dùng có nội dung phía máy khách tuỳ chỉnh.

Tài liệu chi tiết

alert(prompt)

Mở một hộp thoại trong trình chỉnh sửa của người dùng với thông báo đã cho và nút "OK". Phương thức này tạm ngưng tập lệnh phía máy chủ trong khi hộp thoại đang mở. Tập lệnh sẽ tiếp tục sau khi người dùng đóng hộp thoại, nhưng kết nối Jdbc và khoá LockService không tồn tại trong suốt thời gian tạm ngưng. Để biết thêm thông tin, hãy xem hướng dẫn tạo hộp thoại và thanh bên.

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

Các tham số

TênLoạiNội dung mô tả
promptStringThông báo hiển thị trong hộp thoại.

Cầu thủ trả bóng

Button – Nút mà người dùng đã nhấp vào.


alert(prompt, buttons)

Mở hộp thoại trong trình chỉnh sửa của người dùng với thông báo đã cho và một bộ nút. Phương thức này tạm ngưng tập lệnh phía máy chủ trong khi hộp thoại đang mở. Tập lệnh sẽ tiếp tục sau khi người dùng đóng hộp thoại, nhưng kết nối Jdbc và khoá LockService không tồn tại trong suốt thời gian tạm ngưng. Để biết thêm thông tin, hãy xem hướng dẫn tạo hộp thoại và thanh bên.

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

Các tham số

TênLoạiNội dung mô tả
promptStringThông báo hiển thị trong hộp thoại.
buttonsButtonSetNút được thiết lập để hiển thị trong hộp thoại.

Cầu thủ trả bóng

Button – Nút mà người dùng đã nhấp vào.


alert(title, prompt, buttons)

Mở một hộp thoại trong trình chỉnh sửa của người dùng với tiêu đề, thông báo và tập hợp nút đã cho. Phương thức này sẽ tạm ngưng tập lệnh phía máy chủ trong khi hộp thoại đang mở. Tập lệnh sẽ tiếp tục sau khi người dùng đóng hộp thoại, nhưng các kết nối Jdbc và khoá LockService không vẫn tồn tại trong suốt thời gian tạm ngưng. Để biết thêm thông tin, hãy xem hướng dẫn tạo hộp thoại và thanh bên.

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

Các tham số

TênLoạiNội dung mô tả
titleStringTiêu đề hiển thị phía trên hộp thoại.
promptStringThông báo hiển thị trong hộp thoại.
buttonsButtonSetNút được thiết lập để hiển thị trong hộp thoại.

Cầu thủ trả bóng

Button – Nút mà người dùng đã nhấp vào.


createAddonMenu()

Tạo một trình tạo có thể dùng để chèn trình đơn phụ vào trình đơn Tiện ích của trình chỉnh sửa. Trình đơn không thực sự được cập nhật cho đến khi Menu.addToUi() được gọi. Nếu tập lệnh đang chạy dưới dạng tiện ích bổ sung, tên trình đơn phụ khớp với tên của tiện ích bổ sung trong cửa hàng trực tuyến; nếu tập lệnh được liên kết trực tiếp với tài liệu, thì tên trình đơn phụ khớp với tên của tập lệnh. Để biết thêm thông tin, hãy xem hướng dẫn tạo trình đơn.

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

Cầu thủ trả bóng

Menu — Trình tạo trình đơn mới.


createMenu(caption)

Tạo một trình tạo có thể dùng để thêm trình đơn vào giao diện người dùng của trình chỉnh sửa. Trình đơn chỉ được thêm vào cho đến khi Menu.addToUi() được gọi. Để biết thêm thông tin, hãy xem hướng dẫn tạo trình đơn. Nhãn cho trình đơn cấp cao nhất phải ở dạng dòng tiêu đề (tất cả các từ chính được viết hoa), mặc dù nhãn cho trình đơn phụ phải ở dạng câu (chỉ viết hoa từ đầu tiên). Nếu tập lệnh được xuất bản dưới dạng một tiện ích bổ sung, thì tham số caption sẽ bị bỏ qua và trình đơn này sẽ được thêm làm trình đơn phụ của trình đơn Tiện ích, tương đương với 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();
}

Các tham số

TênLoạiNội dung mô tả
captionStringNhãn của trình đơn, trong đó tất cả các từ chính được viết hoa trình đơn cấp cao nhất hoặc chỉ viết hoa từ đầu tiên của trình đơn phụ.

Cầu thủ trả bóng

Menu — Trình tạo trình đơn mới.


prompt(prompt)

Mở hộp thoại nhập dữ liệu trong trình chỉnh sửa của người dùng với thông báo đã cho và nút "OK". Phương thức này sẽ tạm ngưng tập lệnh phía máy chủ trong khi hộp thoại đang mở. Tập lệnh sẽ tiếp tục sau khi người dùng đóng hộp thoại, nhưng các kết nối Jdbc và khoá LockService không vẫn tồn tại trong suốt thời gian tạm ngưng. Để biết thêm thông tin, hãy xem hướng dẫn tạo hộp thoại và thanh bên.

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

Các tham số

TênLoạiNội dung mô tả
promptStringThông báo hiển thị trong hộp thoại.

Cầu thủ trả bóng

PromptResponse – Biểu thị phản hồi của người dùng.


prompt(prompt, buttons)

Mở hộp thoại nhập dữ liệu trong trình chỉnh sửa của người dùng với thông báo đã cho và một bộ nút. Phương thức này sẽ tạm ngưng tập lệnh phía máy chủ trong khi hộp thoại đang mở. Tập lệnh sẽ tiếp tục sau khi người dùng đóng hộp thoại, nhưng các kết nối Jdbc và khoá LockService không vẫn tồn tại trong suốt thời gian tạm ngưng. Để biết thêm thông tin, hãy xem hướng dẫn tạo hộp thoại và thanh bên.

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

Các tham số

TênLoạiNội dung mô tả
promptStringThông báo hiển thị trong hộp thoại.
buttonsButtonSetNút được thiết lập để hiển thị trong hộp thoại.

Cầu thủ trả bóng

PromptResponse – Biểu thị phản hồi của người dùng.


prompt(title, prompt, buttons)

Mở hộp thoại nhập dữ liệu trong trình chỉnh sửa của người dùng với tiêu đề, thông báo và tập hợp nút đã cho. Phương thức này sẽ tạm ngưng tập lệnh phía máy chủ trong khi hộp thoại đang mở. Tập lệnh sẽ tiếp tục sau khi người dùng đóng hộp thoại, nhưng các kết nối Jdbc và khoá LockService không tồn tại trên trường hợp tạm ngưng. Để biết thêm thông tin, hãy xem hướng dẫn về hộp thoại và thanh bên.

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

Các tham số

TênLoạiNội dung mô tả
titleStringTiêu đề hiển thị phía trên hộp thoại.
promptStringThông báo hiển thị trong hộp thoại.
buttonsButtonSetNút được thiết lập để hiển thị trong hộp thoại.

Cầu thủ trả bóng

PromptResponse – Biểu thị phản hồi của người dùng.


showModalDialog(userInterface, title)

Mở hộp thoại phương thức trong trình chỉnh sửa của người dùng có nội dung phía máy khách tuỳ chỉnh. Phương thức này không tạm ngưng tập lệnh phía máy chủ trong khi hộp thoại đang mở. Để giao tiếp với tập lệnh phía máy chủ, thành phần phía máy khách phải thực hiện lệnh gọi lại không đồng bộ bằng cách sử dụng API google.script cho HtmlService. Để đóng hộp thoại theo phương thức lập trình, hãy gọi google.script.host.close() ở phía máy khách của ứng dụng web HtmlService. Để biết thêm thông tin, hãy xem hướng dẫn tạo hộp thoại và thanh bên.

Hộp thoại phương thức ngăn người dùng tương tác với bất kỳ nội dung nào khác ngoài hộp thoại. Ngược lại, hộp thoại không chế độthanh bên cho phép người dùng tương tác với trình chỉnh sửa. Trong hầu hết mọi trường hợp, hộp thoại phương thức hoặc thanh bên là lựa chọn tốt hơn so với hộp thoại không chế độ.

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

Các tham số

TênLoạiNội dung mô tả
userInterfaceObjectMột HtmlOutput đại diện cho giao diện cần hiển thị.
titleStringTiêu đề hộp thoại; ghi đè mọi tiêu đề được đặt bằng cách gọi setTitle() trên đối tượng userInterface.

Ủy quyền

Tập lệnh sử dụng phương thức này cần được uỷ quyền với một hoặc nhiều phạm vi sau:

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

showModelessDialog(userInterface, title)

Mở hộp thoại không chế độ trong trình chỉnh sửa của người dùng có nội dung tuỳ chỉnh phía máy khách. Phương thức này không tạm ngưng tập lệnh phía máy chủ trong khi hộp thoại đang mở. Để giao tiếp với tập lệnh phía máy chủ, thành phần phía máy khách phải thực hiện lệnh gọi lại không đồng bộ bằng cách sử dụng API google.script cho HtmlService. Để đóng hộp thoại theo phương thức lập trình, hãy gọi google.script.host.close() ở phía máy khách của ứng dụng web HtmlService. Để biết thêm thông tin, hãy xem hướng dẫn tạo hộp thoại và thanh bên.

Hộp thoại không chế độ cho phép người dùng tương tác với trình chỉnh sửa ở phía sau hộp thoại. Ngược lại, các hộp thoại phương thức thì không. Trong hầu hết các trường hợp, hộp thoại dạng phương thức hoặc thanh bên là lựa chọn phù hợp hơn so với hộp thoại không có chế độ.

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

Các tham số

TênLoạiNội dung mô tả
userInterfaceObjectMột HtmlOutput đại diện cho giao diện cần hiển thị.
titleStringTiêu đề hộp thoại; ghi đè mọi tiêu đề được đặt bằng cách gọi setTitle() trên đối tượng userInterface.

Ủy quyền

Tập lệnh sử dụng phương thức này cần được uỷ quyền với một hoặc nhiều phạm vi sau:

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

showSidebar(userInterface)

Mở một thanh bên trong trình chỉnh sửa của người dùng có nội dung phía máy khách tuỳ chỉnh. Phương thức này không tạm ngưng tập lệnh phía máy chủ trong khi thanh bên đang mở. Để giao tiếp với tập lệnh phía máy chủ, thành phần phía máy khách phải thực hiện lệnh gọi lại không đồng bộ bằng cách sử dụng API google.script cho HtmlService. Để đóng thanh bên theo phương thức lập trình, hãy gọi google.script.host.close() ở phía máy khách của ứng dụng web HtmlService. Để biết thêm thông tin, hãy xem hướng dẫn tạo hộp thoại và thanh bên.

Thanh bên hiển thị ở bên phải trình chỉnh sửa đối với người dùng có môi trường sử dụng ngôn ngữ từ trái sang phải và ở bên trái trình chỉnh sửa đối với ngôn ngữ từ phải sang trái. Tất cả các thanh bên do tập lệnh hiển thị đều có chiều rộng 300 pixel.

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

Các tham số

TênLoạiNội dung mô tả
userInterfaceObjectMột HtmlOutput đại diện cho giao diện cần hiển thị.

Ủy quyền

Tập lệnh sử dụng phương thức này cần được uỷ quyền với một hoặc nhiều phạm vi sau:

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

Các phương thức ngừng hoạt động