Я хочу создать Google Doc с помощью Google Script и назвать новый документ из пользовательского ввода.
Приведенный ниже код создает новый документ (веб-приложение, прикрепленное к кнопке на новом сайте Google).).Теперь я хочу добавить код, который получает название песни от пользователя.Я просто понятия не имею, как это сделать после трех дней поиска.
Ближайший код, который я смог найти: записать данные в листе Google с помощью приложения для веб-скриптов
Но это для Google Sheets, а не для Документов.
Мой код, который до сих пор работает для создания документа:
Code.gs
function createNewLandscapeSong() {
var doc = DocumentApp.create('Rename with song title');
var title = "replace with song title"
var url = doc.getUrl();
var body = doc.getBody();
var paragraph = body.insertParagraph(0, "");
var text1 = paragraph.appendText("© replace with writer(s)");
text1.setFontSize(8);
var rowsData = [['PUT FIRST VERSE/CHORUS HERE.', 'PUT SECOND VERSE/NEXT CHORUS/BRIDGE/ETC HERE.']];
var style = {};
body.insertParagraph(0, title)
.setHeading(DocumentApp.ParagraphHeading.HEADING3);
table = body.appendTable(rowsData);
style[DocumentApp.Attribute.BORDER_WIDTH] = 0;
table.setAttributes(style);
return {
url: url,
title: title
};
}
Index.html
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<input type="button" value="Create New Song Doc"
onclick="google.script.run
.withSuccessHandler(openNewDoc)
.createNewLandscapeSong()" />
<script>
function openNewDoc(results){
window.open(results.url, '_blank').focus();
}
</script>
</body>
</html>
</body>
</html>
Итак, я знаю, что где-то в этом коде мне нужно добавитькод, который предлагает пользователю ввести название песни, а затем мне нужно установить его в качестве переменной и вставить его в качестве имени документа и названия песни (мои «var doc» и «var title»).Я просто не знаю, как это сделать.
Пересмотренный код, основанный на вводе Сэнди:
Code.gs
function doGet() {
return HtmlService
.createTemplateFromFile('Index')
.evaluate();
}
function createNewLandscapeSong(objArgs) {
var docName = objArgs.docName;
var songTitle = objArgs.songTitle;
var songWriters = objArgs.songWriters;
Logger.log('title: ' + title)
var doc = DocumentApp.create(docName);
var url = doc.getUrl();
var body = doc.getBody();
var paragraph = body.insertParagraph(0, "");
var text = paragraph.appendText(songWriters);
text.setFontSize(8);
var rowsData = [['PUT FIRST VERSE/CHORUS HERE.', 'PUT SECOND VERSE/NEXT CHORUS/BRIDGE/ETC HERE.']];
var style = {};
body.insertParagraph(0, songTitle)
.setHeading(DocumentApp.ParagraphHeading.HEADING3);
table = body.appendTable(rowsData);
style[DocumentApp.Attribute.BORDER_WIDTH] = 0;
table.setAttributes(style);
return {
url: url,
title: title
};
}
Index.html
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
Fill in fields below to name Google Lyric Document and add the song title and writers.<br><br>
<input id="idNewDocName" type="text" placeholder="Google Doc Name"><br><br>
<input id="idNewSongTitle" type="text" placeholder="Song Title"><br><br>
<input id="idNewSongWriters" type="text" placeholder="Song Writers"><br><br>
<button onclick="saveUserInput()">Create New Lyric Doc</button>
<script>
window.saveUserInput = function() {
var docName = document.getElementById('idNewDocName').value;
var songTitle = document.getElementById('idNewSongTitle').value;
var songWriters = document.getElementById('idNewSongWriters').value;
console.log('songTitle: ' + songTitle)
google.script.run
.withSuccessHandler(openNewDoc)
.createNewLandscapeSong({docName:docName,songTitle:songTitle, songWriters: songWriters})
}
function openNewDoc(results){
window.open(results.url, '_blank').focus();
}
</script>
</body>
</html>