如何在谷歌脚本上以字符串形式获取用户输入

时间:2015-04-25 00:53:07

标签: google-apps-script google-calendar-api

嘿伙计们(请帮忙格式化,我是新手),

所以我正在制作一个程序,要求你向用户询问日期的输入(我将通过MMDDYYY形式输入日期来接收它们)。我只是对如何实现这一点感到困惑,因为我的脚本包含了Google日历的使用。

在此网站中:https://developers.google.com/apps-script/reference/base/prompt-response

他们有一个名为PromptResponse的类,通过执行DocumentApp.getUI()SpreadsheetApp.getUI();

实例化

我可以通过CalendarApp.getUI()执行此操作吗?或者我需要另一种方式吗?

如果我能这样做,对于方法getResponseText(),当我调用它时,是否会询问用户那里(看看他们在链接中使用它的方式)?谢谢!

1 个答案:

答案 0 :(得分:1)

当您致电one of the ui.prompt() methods时,会打开对话框并与用户进行互动。当用户解除对话框时,ui.prompt()会返回包含该互动所有结果的PromptResponse对象。

然后,您可以查询PromptResponse对象(即调用response.getResponseText()response.getSelectedButton())以查找用户输入的文本以及用户在对话框中单击的按钮。

CalendarApp对象具有getUI()方法,也没有“工具>脚本编辑器”菜单命令。

相反,将Apps脚本UI附加到Google Sheet, Doc, or Form或创建standalone script并从那里运行它。该脚本可以提示用户输入,然后调用Calendar 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();
}