在Google脚本中,如何将文档url变量传递到href语句中?

时间:2019-02-18 13:26:29

标签: google-apps-script google-sheets google-docs

我在Google表格中有一个绑定的Google脚本,该脚本可以创建菜单并使用一系列函数在工作表的onOpen中填充菜单。一个功能创建了一个新的Google文档。然后,我想打开该文档,但是我不知道如何将文档的URL传递到href语句中。参见下面的代码:

function createLandscapeLyricDoc() {
  var doc = DocumentApp.create('Rename');
  var title = "replace with song title and then link this text to song title cell in Catalog Spreadsheet"
  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.  (SUGGEST USE ALL CAPS.)', '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);
  /*line below is the one that does not work as the variable "url" is not being read correctly (as I don't know how to use it or if this can even be done)*/
  var html = "<a href= 'url'; target='_blank'>Open 1-Column Lyric Template</a>";
  var selection = SpreadsheetApp.getActiveSheet();
  var userInterface = HtmlService.createHtmlOutput(html);
  SpreadsheetApp.getUi().showModalDialog(userInterface, 'Open Landscape New Lyric Doc'); 

有人建议已经here回答了这个问题,虽然我可以看到为什么提出了这个建议,但我有以下观察见:

1)我对Google脚本编码来说是个新手,无法了解足够的术语以在Stack Overflow上形成搜索查询以找到答案。而且,实际上,如果我偶然发现了这个“答案”,我不确定我是否会意识到这一点,因为总体代码与我所苦苦挣扎的代码完全不同。

2)在我提出问题之前,该解决方案并没有作为建议的解决方案之一出现。

综合考虑这两点,特别是对于新手编码人员,我认为在此站点上提问对其他适合我个人资料的人(而不是经验丰富的编码员)会有所帮助,因为此问题和答案可能会针对其他人尝试去做我曾经/正在尝试做的事情,而How to use a variable inside a string问答不会。

2 个答案:

答案 0 :(得分:0)

桑迪·古德(Sandy Good)回答:

var html = '<a href= "' + url + '"; target="_blank">Open 1-Column Lyric Template</a>;'

答案 1 :(得分:0)

我发现以这种方式在复杂的字符串中这样做更容易。

var html = Utilities.formatString('<a href="%s" target="_blank">Open 1-Column Lyric Template</a>',url);