如何在 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();
}