Google Script, как определить все элементы Header3 в Google do c? - PullRequest
2 голосов
/ 03 августа 2020

Я новичок, работаю с Google Apps Script для извлечения данных из Google Do c, и мне нужна помощь ...

У меня есть Google Do c, в котором много рецептов приготовления. Я хотел бы написать функцию, которая случайным образом выбирает 4 рецепта и присылает мне ингредиенты по электронной почте, чтобы я знал, что покупать на этой неделе. Все мои рецепты названы «Заголовком 3», а ингредиенты помечены списком под ними. Я полностью открыт для изменения форматирования, если это необходимо.

Я пытаюсь заставить мой сценарий идентифицировать весь текст типа «Заголовок 3» в качестве отправной точки. Таким образом, я могу случайным образом выбирать из этого списка рецептов, но не могу найти способ сделать это. Вот что у меня есть:

function onOpen() {
  var ui = DocumentApp.getUi();
  ui.createMenu('Generate Weekly Shopping List')
      .addItem('Send Email', 'generateMenu')
      .addToUi();
}

function generateMenu() {
  //I may need the doc and body variables later...  
  //Get the latest contents of the menu
  var doc = DocumentApp.openById("<my doc ID here>");
  
   //Assign a variable to the body of the doc
  var body = doc.getBody();

  //declare variable holding the search criteria
  var searchType = DocumentApp.ParagraphHeading.HEADING3;
  
  //search the body based on the search criteria
  var searchResult = body.findElement(searchType);  

  // Get the email address of the active user - that's you.
  var email = Session.getActiveUser().getEmail();

  // Send yourself an email with list.
  GmailApp.sendEmail(email, "Shopping List For The Week", "Here is the shopping list:" + searchResult);
  
}

1 Ответ

1 голос
/ 03 августа 2020

Из вопроса

Я пытаюсь заставить свой скрипт идентифицировать весь текст типа «Заголовок 3» в качестве отправной точки. Таким образом, я могу случайным образом выбирать из этого списка рецептов, но не могу найти способ сделать это. Вот что у меня есть на данный момент:

Используйте getHeading

Извлекает ParagraphHeading .

Затем сравните результат с DocumentApp.ParagraphHeading.HEADING3.

Чтобы сделать вышеупомянутое, сначала вам нужно будет получить все абзацы, а затем перебрать их, чтобы получить заголовок.


Что касается

//declare variable holding the search criteria
 var searchType = DocumentApp.ParagraphHeading.HEADING3;
  
//search the body based on the search criteria
var searchResult = body.findElement(searchType);  

DocumentApp.ParagraphHeading.HEADING3 нельзя использовать в качестве аргумента findElement , так как это не ElementType


Связанный

...