Google Apps Script - вставьте вторую таблицу на новую страницу - PullRequest
1 голос
/ 10 мая 2019

То, что я пытаюсь сделать, это:

  • На странице 1 вставить таблицу 1
  • Перейти на страницу 2, вставить таблицу 2

Я могу вставить две таблицы одну за другой, но не могу перейти на новую страницу перед вставкой таблицы 2.

  docId = "YOUR_DOC_ID";
  var doc = DocumentApp.openById(docId);
  var body = doc.getBody();

  var table1 = body.insertTable(2, data[0]);
  formatTable(table1);

  // insert page break here

  var table2 = body.insertTable(3, data[1]);
  formatTable(table2);

  doc.saveAndClose();

ВставкаPageBreak () - это то, с чем я борюсь.

Что я пробовал до сих пор:

  • Единственный appendPageBreak, который я смог найти, находится на body. Поэтому я попытался body.appendPageBreak(). Это вставляет новую страницу в самом конце. НО мне это нужно сразу после таблицы 1.
  • Я прочитал ЭТУ документацию, но не смог ее реализовать из-за отсутствия примеров.
  • Для ЭТОГО ответа я получаю NULL для getCursor() команды. Также theElement.insertPageBreak(0) не удалось для меня, так как элемент не показал никакого метода insertPageBreak().
  • Для ЭТОГО ответ, как указано выше, добавляется в конце.

Любая помощь будет оценена.

1 Ответ

1 голос
/ 11 мая 2019

Хотя я не уверен насчет вашего фактического документа, если новый документ используется, как насчет этой модификации?Этот измененный сценарий выглядит следующим образом.

  1. Вставка таблицы 1.
  2. Вставка разрыва страницы.
  3. Вставка таблицы 2 в новую созданную страницупо разрыву страницы.

Модифицированный скрипт 1:

В этом скрипте таблица 1, разрыв страницы и таблица 2 располагаются по порядку в новом документе.

docId = "###";
var body = DocumentApp.openById(docId).getBody();
var table1 = body.insertTable(1, [["table1"]]);
body.insertPageBreak(2);
var table2 = body.insertTable(3, [["table2"]]);

Модифицированный скрипт 2:

В этом скрипте, передавая индекс вставки, таблица 1, разрыв страницы и таблица 2 переносятся из индекса вставки по порядку в Документ.

var insertIndex = 1; // Please set this
docId = "###";
var body = DocumentApp.openById(docId).getBody();
var table1 = body.insertTable(insertIndex, [["table1"]]);
var pageBreak = body.insertPageBreak(body.getChildIndex(table1) + 1);
var table2 = body.insertTable(body.getChildIndex(pageBreak.getParent()) + 1, [["table2"]]);

Примечание:

  • Я не мог понять о _insertPageBreak().

Ссылки:

Если я неправильно понял ваш вопрос и это не тот результат, который вы хотите, я приношу свои извинения.

...