Как вставить таблицу из листа после указания c текста в документах Google с помощью скрипта приложений Google? - PullRequest
0 голосов
/ 08 февраля 2020

Я получил этот код от Танаике. Это работает, но я не понимаю утверждение if.

Может кто-нибудь объяснить мне это?

    var body = somedoc.getBody(); 
    var range = body.findText("#PLACEHOLDER#"); 
    var ele = range.getElement(); 

    if (ele.getParent().getParent().getType() === DocumentApp.ElementType.BODY_SECTION) { 
      var offset = body.getChildIndex(ele.getParent());
      body.insertTable(offset + 1, data);
    }

1 Ответ

1 голос
/ 10 февраля 2020

Не видя остальной части вашего кода и вопроса - что делает фрагмент кода, чтобы найти текст «PLACEHOLDER» в вашем документе и вставить таблицу в тот же StructuralElement, что и тот, который содержит Paragraph с Ваш текст.

Полезно визуализировать структуру документа Документов Google

enter image description here

enter image description here

В вашем случае

  • Оператор if проверяет, что родитель родительского элемента ele является BodySection
  • Если условие выполнено, это означает, что ele является ParagraphElement
  • Это также означает, что родительский элемент ele является Paragraph
  • Все StructuralElements childIndex
  • var offset = body.getChildIndex(ele.getParent()); находит childIndex из Paragraph, который содержит ele
  • Вставленный table будет иметь индекс на единицу выше, чем Paragraph, это означает, что он будет вставлен сразу после Paragraph

Надеюсь, теперь он вам немного понятнее.

...