Class Ui

ממשק משתמש (Ui)

מופע של סביבת ממשק המשתמש של אפליקציית Google, שמאפשר לסקריפט להוסיף תכונות כמו תפריטים, תיבות דו-שיח וסרגלי צד. סקריפט יכול לקיים אינטראקציה עם ממשק המשתמש רק במופע הנוכחי של עורך פתוח, ורק אם הסקריפט מקושר לקונטיינר לעורך.

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

תכונות

נכסתיאורהתיאור
ButtonButtonטיפוסים בני מנייה (enum) שמייצגים לחצני תיבת דו-שיח מותאמים לשוק המקומי שנקבעו מראש, שהוחזרו על-ידי התראה או PromptResponse.getSelectedButton() כדי לציין על איזה לחצן בתיבת דו-שיח המשתמש לחץ.
ButtonSetButtonSetטיפוסים בני מנייה (enum) שמייצגים קבוצות מותאמות אישית שנקבעו מראש, של לחצן תיבת דו-שיח אחד או יותר, שאפשר להוסיף להתראה או להודעה.

שיטות

שיטהסוג הערך שמוחזרתיאור קצר
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)

פתיחת תיבת דו-שיח של חלון העזר בעורך של המשתמש עם תוכן מותאם אישית בצד הלקוח. השיטה הזו לא משעה את הסקריפט בצד השרת כשתיבת הדו-שיח פתוחה. כדי לתקשר עם הסקריפט בצד השרת, הרכיב בצד הלקוח צריך לבצע קריאות חוזרות אסינכרוניות באמצעות ה-API של google.script עבור 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');

פרמטרים

שםתיאורהתיאור
userInterfaceObjectהשדה HtmlOutput שמייצג את הממשק לתצוגה.
titleStringהכותרת של תיבת הדו-שיח; הכותרת מבטלת כל כותרת שהוגדרה על ידי קריאה ל-setTitle() באובייקט userInterface.

הרשאות

לסקריפטים שמשתמשים בשיטה הזו נדרשת הרשאה באחד או יותר מההיקפים הבאים:

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

showModelessDialog(userInterface, title)

פתיחת תיבת דו-שיח ללא מצב בעורך המשתמש עם תוכן מותאם אישית בצד הלקוח. השיטה הזו לא משעה את הסקריפט בצד השרת כשתיבת הדו-שיח פתוחה. כדי לתקשר עם הסקריפט בצד השרת, הרכיב בצד הלקוח צריך לבצע קריאות חוזרות אסינכרוניות באמצעות ה-API של google.script עבור 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');

פרמטרים

שםתיאורהתיאור
userInterfaceObjectהשדה HtmlOutput שמייצג את הממשק לתצוגה.
titleStringהכותרת של תיבת הדו-שיח; הכותרת מבטלת כל כותרת שהוגדרה על ידי קריאה ל-setTitle() באובייקט userInterface.

הרשאות

לסקריפטים שמשתמשים בשיטה הזו נדרשת הרשאה באחד או יותר מההיקפים הבאים:

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

showSidebar(userInterface)

פתיחת סרגל צד בעורך של המשתמש עם תוכן מותאם אישית בצד הלקוח. השיטה הזו לא משעה את הסקריפט בצד השרת כשסרגל הצד פתוח. כדי לתקשר עם הסקריפט בצד השרת, הרכיב בצד הלקוח צריך לבצע קריאות חוזרות אסינכרוניות באמצעות ה-API של google.script עבור 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);

פרמטרים

שםתיאורהתיאור
userInterfaceObjectהשדה HtmlOutput שמייצג את הממשק לתצוגה.

הרשאות

לסקריפטים שמשתמשים בשיטה הזו נדרשת הרשאה באחד או יותר מההיקפים הבאים:

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

שיטות שהוצאו משימוש