Search code examples
google-apps-scripthyperlinkgoogle-docs

How to add a hyperlink in a Google Docs using a Google Script


I have always used the insertText() function, but now I want to write a link in my google docs. The ideal would be to be able to write in HTML, but I don't know how.. it seems that it is not possible with the insertText() function.

How can I do that ?


Solution

  • You should be able to use setFormula and the Hyperlink formula like so:

    var value = '=HYPERLINK("www.google.com", "Google")';
    
    SpreadsheetApp.getActiveSpreadsheet()
       .getSheetByName("Sheet1")
       .getRange("A1")
       .setFormula(value);
    

    Edit: Looks like I misread the question. Try this instead:

    DocumentApp.getActiveDocument()
      .getBody()
      .editAsText()
      .insertText(0, "link text")
      .setLinkUrl("www.google.com");
    

    Edit 2: Looks like .setLinkUrl() is effecting the whole body, not the text inserted. If you put the link text into a variable and use the length of the variable to mark the link area, it should work. Try this instead:

    function insertLink() {
      var text = "link text\n";
      var url = "www.google.com";
      DocumentApp.getActiveDocument()
        .getBody()
        .editAsText()
        .insertText(0, text)
        .setLinkUrl(0, text.length, url);
    }