Class Ui

Ui

Một thực thể của môi trường giao diện người dùng cho Ứ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 phiên bản hiện tại của trình chỉnh sửa đang mở và chỉ khi tập lệnh đó liên kết với vùng chứa của 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.
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.');
}

Thuộc tính

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

Phương thức

Phương thứcLoại 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ở 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 và bộ nút nhất định.
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 các 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 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 trong trình chỉnh sửa của người dùng với thông báo và bộ nút nhất định.
prompt(title, prompt, buttons)PromptResponseMở hộp thoại nhập trong trình chỉnh sửa của người dùng với tiêu đề, thông báo và bộ nút nhất định.
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 với nội dung tuỳ chỉnh phía máy khách.
showModelessDialog(userInterface, title)voidMở hộp thoại không có chế độ trong trình chỉnh sửa của người dùng với 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 tuỳ chỉnh phía máy khách.

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 các kết nối Jdbc và khoá LockService sẽ không tồn tại trong quá trình 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 "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');

Tham số

TênLoạiMô tả
promptStringThông báo sẽ 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ở 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 và bộ nút nhất định. 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 các kết nối Jdbc và khoá LockService sẽ không tồn tại trong quá trình 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 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.',
  );
}

Tham số

TênLoạiMô tả
promptStringThông báo sẽ hiển thị trong hộp thoại.
buttonsButtonSetNút được đặt để 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 các 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 sẽ không tồn tại trong quá trình 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, 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.',
  );
}

Tham số

TênLoạiMô tả
titleStringTiêu đề sẽ hiển thị phía trên hộp thoại.
promptStringThông báo sẽ hiển thị trong hộp thoại.
buttonsButtonSetNút được đặt để 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 thực sự không đượ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 con sẽ khớp với tên của tiện ích bổ sung trong cửa hàng web; nếu tập lệnh được liên kết trực tiếp với tài liệu, tên trình đơn con sẽ 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 về 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 sẽ không thực sự được thêm cho đến khi Menu.addToUi() được gọi. Để biết thêm thông tin, hãy xem hướng dẫn về trình đơn. Nhãn cho trình đơn cấp cao nhất phải được viết hoa kiểu dòng tiêu đề (viết hoa tất cả các từ chính), mặc dù nhãn cho trình đơn phụ phải được viết hoa kiểu đầu câu (chỉ viết hoa từ đầu tiên). Nếu tập lệnh được phát hành dưới dạng tiện ích bổ sung, tham số caption sẽ bị bỏ qua và trình đơn sẽ được thêm dưới dạng 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();
}

Tham số

TênLoạiMô tả
captionStringNhãn cho trình đơn, trong đó tất cả các từ chính được viết hoa cho trình đơn cấp cao nhất hoặc chỉ từ đầu tiên được viết hoa cho trình đơn con.

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 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 sẽ không tồn tại trong quá trình 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 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.');
}

Tham số

TênLoạiMô tả
promptStringThông báo sẽ 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 trong trình chỉnh sửa của người dùng với thông báo và bộ nút nhất định. 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 sẽ không tồn tại trong quá trình 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 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.');
}

Tham số

TênLoạiMô tả
promptStringThông báo sẽ hiển thị trong hộp thoại.
buttonsButtonSetNút được đặt để 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 trong trình chỉnh sửa của người dùng với tiêu đề, thông báo và bộ nút nhất định. 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 các kết nối Jdbc và khoá LockService sẽ không tồn tại trong quá trình 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.
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.');
}

Tham số

TênLoạiMô tả
titleStringTiêu đề sẽ hiển thị phía trên hộp thoại.
promptStringThông báo sẽ hiển thị trong hộp thoại.
buttonsButtonSetNút được đặt để 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 với 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ủ 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 API google.script cho HtmlService. Để đóng hộp thoại bằng cách 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 về 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 có chế độbảng điều khiển 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 các 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 có phương thức.

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

Tham số

TênLoạiMô tả
userInterfaceObjectHtmlOutput đại diện cho giao diện hiển thị.
titleStringTiêu đề của 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

Các tập lệnh sử dụng phương thức này yêu cầu đượ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 có chế độ trong trình chỉnh sửa của người dùng với 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ủ 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 API google.script cho HtmlService. Để đóng hộp thoại bằng cách 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 về hộp thoại và thanh bên.

Hộp thoại không có chế độ cho phép người dùng tương tác với trình chỉnh sửa đằng sau hộp thoại. Ngược lại, 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 chế độ hoặc bảng điều khiển là lựa chọn tốt hơn so với hộp thoại không có chế độ.

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

Tham số

TênLoạiMô tả
userInterfaceObjectHtmlOutput đại diện cho giao diện hiển thị.
titleStringTiêu đề của 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

Các tập lệnh sử dụng phương thức này yêu cầu đượ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 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ủ 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 API google.script cho HtmlService. Để đóng thanh bên bằng cách 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 về 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 những 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 những ngôn ngữ từ phải sang trái. Tất cả các thanh bên được hiển thị bằng tập lệnh đều có chiều rộng 300 pixel.

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

Tham số

TênLoạiMô tả
userInterfaceObjectHtmlOutput đại diện cho giao diện hiển thị.

Ủy quyền

Các tập lệnh sử dụng phương thức này yêu cầu đượ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