问题
function createAndSendDocument() {
// Create a new document with the title 'Hello World'
var ui = DocumentApp.getUi();
var response1 = ui.prompt('What should be Name of your Document', ui.ButtonSet.YES_NO);
var doc = DocumentApp.create(response1.getResponseText());
var response = ui.prompt('What should be content of your Document', ui.ButtonSet.YES_NO);
// Add a paragraph to the document
var paragraph = prompt("What should be content of your Document")
doc.appendParagraph(response.getResponseText());
// Save and close the document
doc.saveAndClose();
// Get the URL of the document
var url = doc.getUrl();
// Get the email address of the user
var response2 = ui.prompt('What should be content of your Document', ui.ButtonSet.YES_NO)
var emailAddress = response2.getResponseText();
// Send the user an email with a link to the document
GmailApp.sendEmail(emailAddress,
'Hello from my first Google Apps Script!',
'Here is a link to a document created by my ' +
'first Google Apps Script: ' + url);
}
This the code I entered It showed an Error "Cannot call DocumentApp.getUi() from this context. (line 3, file "Code")" What is the problem in the code. Please Reply.
回答1:
If it is in a spreadsheet, not a document, it will give this error.
Therfore you have to use the spreadsheet alternative
function onOpen() {
var ss = SpreadsheetApp.getActive();
var items = [
{name: 'First item', functionName: 'menuItem1'},
null, // Results in a line separator.
{name: 'Second item', functionName: 'menuItem2'}
];
ss.addMenu('Custom Menu', items);
}
https://developers.google.com/apps-script/guides/menus
回答2:
That method can only be invoked from a Document-contained script. A script that is contained in a spreadsheet or form, or one that is stand-alone, does not have access to a Document User Interface instance.
来源:https://stackoverflow.com/questions/18840885/google-script-error