Получить гиперссылку на определенную текстовую строку в Документе Google с помощью скрипта Apps - PullRequest
0 голосов
/ 28 декабря 2018

Я пытаюсь использовать Google Apps Script, чтобы получить гиперссылку из определенной строки, найденной в этом Google Doc .

Строка: || stock ||

Гиперссылка: https://www.cnbc.com/quotes/?symbol=aapl&qsearchterm=aapl

Любая помощь приветствуется.

Код, который я сейчас использую

function docReport() {
  var doc = DocumentApp.openByUrl('https://docs.google.com/document/d/1XNiqgJ_hM2SWjoR-OTsq1w-ZFKvTIERDIs_NOWJpckY/edit');
  var body = doc.getBody();
  Logger.log(body.getParagraphs().length);//get the number of paragraphs
  //https://www.udemy.com/apps-script-course/learn/v4/t/lecture/10208226?start=0
  for (var x=0;x<body.getParagraphs();X++) {
   var el = body.getChild(x);
    Logger.log(el.getText());
  }


  var bodyText = body.getText();
  var words = bodyText.match(/\S+/g); // get word count for body - https://stackoverflow.com/questions/33338667/function-for-word-count-in-google-docs-apps-script
  Logger.log(words.length); // retruns # of words

  var paragraphAll = body.getParagraphs(); // gets all paragraph objects in a document
  Logger.log(paragraphAll); 

  var paragraphText = paragraphAll[1].getText().match(/\S+/g);
  Logger.log(paragraphText.length); // retruns # of words in a paragraph




}

1 Ответ

0 голосов
/ 28 декабря 2018
  • Вы хотите получить гиперссылку текста ||stock||.

Если, например, мое понимание верно, как насчет этого примера сценария?В вашей ситуации текстовое значение, на которое есть ссылка, уже известно.Пример сценария использует эту ситуацию.

Кстати, из вашего вопроса, я не уверен, есть ли в документе несколько значений ||stock||.Итак, этот пример сценария предполагает, что в документе есть несколько значений ||stock||.

Я думаю, что для вашей ситуации есть несколько ответов.Поэтому, пожалуйста, подумайте об этом как об одном из них.

Пример сценария:

var searchValue = "\\|\\|stock\\|\\|"; // Search value
var body = DocumentApp.openByUrl('https://docs.google.com/document/d/1XNiqgJ_hM2SWjoR-OTsq1w-ZFKvTIERDIs_NOWJpckY/edit').getBody();
var searchedText = body.findText(searchValue);
var urls = [];
while (searchedText) {
  var url = searchedText.getElement().asText().getLinkUrl(searchedText.getStartOffset());
  urls.push(url);
  searchedText = body.findText(searchValue, searchedText);
}
Logger.log(urls) // Results

Примечание:

Если в документе есть только одно значение поиска, вы также можетеиспользуйте следующий скрипт.

var searchValue = "\\|\\|stock\\|\\|";
var body = DocumentApp.openByUrl('https://docs.google.com/document/d/1XNiqgJ_hM2SWjoR-OTsq1w-ZFKvTIERDIs_NOWJpckY/edit').getBody();
var searchedText = body.findText(searchValue);
var url = searchedText.getElement().asText().getLinkUrl(searchedText.getStartOffset());
Logger.log(url)

Ссылки:

Если я неправильно понял ваш вопрос, пожалуйста, скажите мне.Я хотел бы изменить его.

...