如何在 google 脚本中以字符串形式获取用户输入
How to get user input in string-form on a google script
我正在制作一个程序,要求您要求用户输入日期(我将通过他们通过 MMDDYYY 表单输入日期来接收)。我只是对如何实现这一点感到困惑,因为我的脚本包含 Google 日历的使用。
在此站点中:https://developers.google.com/apps-script/reference/base/prompt-response
他们有一个名为 PromptResponse 的 class,它是通过 DocumentApp.getUI()
或 SpreadsheetApp.getUI();
实例化的
我可以通过 CalendarApp.getUI()
来做到这一点吗?或者我需要其他方法吗?
如果我能那样做,对于方法 getResponseText(),当我调用它时,它会立即询问用户(查看他们在 link 中使用它的方式) ?谢谢!
当您调用 one of the ui.prompt()
methods 时,它会打开对话框并与用户交互。当用户关闭对话框时,ui.prompt()
returns PromptResponse
包含该交互所有结果的对象。
然后您可以查询 PromptResponse
对象(即调用 response.getResponseText()
和 response.getSelectedButton()
)以找出用户输入的文本以及用户在对话框中单击的按钮。
CalendarApp 对象 没有 有 getUI()
方法,也没有 "Tools > Script editor" 菜单命令。
相反,将 Apps 脚本 UI 附加到 Google Sheet, Doc, or Form or create a standalone script 并从那里附加 运行。该脚本可以提示用户输入,然后调用日历 API 来执行添加日历事件之类的操作。
此外,考虑寻找 a date-picker library。
Google 表格脚本中的示例
/** Demonstrates a simple way to prompt the user for a date. */
function promptForDate() {
var ui = SpreadsheetApp.getUi();
var response = ui.prompt('Create a Calendar Event', 'Enter a date in MMDDYYYY form', ui.ButtonSet.OK_CANCEL);
if (response.getSelectedButton() == ui.Button.OK) {
Logger.log('TODO: Create a Calendar Event for date %s', response.getResponseText());
ui.alert('TODO: Create a Calendar Event for date ' + response.getResponseText());
} else if (response.getSelectedButton() == ui.Button.CANCEL) {
Logger.log('The user canceled the dialog.');
} else {
Logger.log('The user closed the dialog.');
}
}
/** Adds a menu to the Google Sheet. */
function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu('Custom Menu')
.addItem('Prompt For Date', 'promptForDate')
.addToUi();
}
我正在制作一个程序,要求您要求用户输入日期(我将通过他们通过 MMDDYYY 表单输入日期来接收)。我只是对如何实现这一点感到困惑,因为我的脚本包含 Google 日历的使用。
在此站点中:https://developers.google.com/apps-script/reference/base/prompt-response
他们有一个名为 PromptResponse 的 class,它是通过 DocumentApp.getUI()
或 SpreadsheetApp.getUI();
我可以通过 CalendarApp.getUI()
来做到这一点吗?或者我需要其他方法吗?
如果我能那样做,对于方法 getResponseText(),当我调用它时,它会立即询问用户(查看他们在 link 中使用它的方式) ?谢谢!
当您调用 one of the ui.prompt()
methods 时,它会打开对话框并与用户交互。当用户关闭对话框时,ui.prompt()
returns PromptResponse
包含该交互所有结果的对象。
然后您可以查询 PromptResponse
对象(即调用 response.getResponseText()
和 response.getSelectedButton()
)以找出用户输入的文本以及用户在对话框中单击的按钮。
CalendarApp 对象 没有 有 getUI()
方法,也没有 "Tools > Script editor" 菜单命令。
相反,将 Apps 脚本 UI 附加到 Google Sheet, Doc, or Form or create a standalone script 并从那里附加 运行。该脚本可以提示用户输入,然后调用日历 API 来执行添加日历事件之类的操作。
此外,考虑寻找 a date-picker library。
Google 表格脚本中的示例
/** Demonstrates a simple way to prompt the user for a date. */
function promptForDate() {
var ui = SpreadsheetApp.getUi();
var response = ui.prompt('Create a Calendar Event', 'Enter a date in MMDDYYYY form', ui.ButtonSet.OK_CANCEL);
if (response.getSelectedButton() == ui.Button.OK) {
Logger.log('TODO: Create a Calendar Event for date %s', response.getResponseText());
ui.alert('TODO: Create a Calendar Event for date ' + response.getResponseText());
} else if (response.getSelectedButton() == ui.Button.CANCEL) {
Logger.log('The user canceled the dialog.');
} else {
Logger.log('The user closed the dialog.');
}
}
/** Adds a menu to the Google Sheet. */
function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu('Custom Menu')
.addItem('Prompt For Date', 'promptForDate')
.addToUi();
}