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

前端 未结 3 849
被撕碎了的回忆
被撕碎了的回忆 2020-12-31 06:36

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 se

相关标签:
3条回答
  • 2020-12-31 06:57

    To add a hyperlink in a document use Body.appendParagraph with setLinkUrl, then merge.

    let doc = DocumentApp.create("My Document");
    let body = doc.getBody();
    body.appendParagraph("Please click ");
    let link = body.appendParagraph("here").setLinkUrl("http://www.google.com");
    link.merge();
    let closing = body.appendParagraph(".");
    closing.merge();
    

    The code above will create a document with text that looks like:

    Please click here.

    0 讨论(0)
  • 2020-12-31 07:06

    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);
    }
    
    0 讨论(0)
  • 2020-12-31 07:06

    I am using this script, this is working Calomun 1 Row > 2.

        function InsertLink(e)
        {
          var actSht = e.source.getActiveSheet();
          if (actSht.getName() == ['SheetName']){
    
          var activeCell = actSht.getActiveCell(); //Detec the ActiveCell
    
          //var activeCell = event.range;
          var activeCellValue = e.value;
    
          var column = activeCell.getColumn();
          var colNums  = [1]; //Columns, whose edit is considered
          if(colNums.indexOf(column) == -1) return; //If column other than considered then return
    
          var row = activeCell.getRow();
          if(row < 2)   return; //If header row then return
    
          var length = String(activeCellValue).length;
    
          if (!e.value)
          {
            activeCell.setValue()
          }
          else if(length > 4)
          {
            activeCell.setValue('=HYPERLINK' + '("http://otrs/otrs/index.pl?Action=AgentTicketZoom;TicketNumber='+activeCellValue+'";"'+activeCellValue+'")'        );
          }
        }
        }
    
    0 讨论(0)
提交回复
热议问题