Как скопировать и вставить указанную c информацию в ту же самую c с помощью Google App Script? - PullRequest
1 голос
/ 16 апреля 2020

Я очень новичок в использовании ГАЗА, и я пытаюсь скопировать некоторую информацию, которая уже находится в нижней части моего документа c, в любое место, где я хочу в своих документах, это должно работать только путем копирования информации и вставьте его в нужное мне место, но я хочу, чтобы это делалось с помощью Google App Script, потому что это ежедневная задача, и ее проще выполнять с помощью функции, а не копировать и вставлять вручную. В поисках того, как это сделать, я нашел много информации о том, как это сделать, в электронных таблицах, но мне нужно было сделать это в Google Docs. Как я могу это сделать?

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

Это то, что у меня есть до сих пор, я получаю все данные текущего do c и снова устанавливаю его на страницу, код доставляет мне проблемы, потому что он удаляет мою другую информацию, а также выбирает все do * Информация 1040 *. Я хочу выбрать часть заданной c информации и не копировать стиль содержимого.

function copyPasteInfo() {
  var doc = DocumentApp.getActiveDocument();
  var body = doc.getBody();
  var notesText = body.getText();
  body.appendPageBreak();
  body.setText(notesText);
}

Ссылка на документ do c https://docs.google.com/document/d/1s2TCspXbjvHVurwhIWSdwJ_hMcZIoLTKj4FAB82nmhM/edit Видео пример того, как я хочу сделать

https://www.screencast.com/t/UmEon8Fm0lPe

Изображение информации, которую я пытаюсь скопировать и вставить в конец моего документа c enter image description here

1 Ответ

0 голосов
/ 16 апреля 2020

Если я правильно понял ваш вопрос, этот код поможет вам достичь вашей цели.

let body = DocumentApp.getActiveDocument().getBody();

function moveTable() {
  // Get the last table and the previous table found in your Doc
  const [previousTable, bottomTable] = getDesireTables();
  // Make a copy of your last table 
  const bottomTableCopy = bottomTable.copy();
  // Get the previous table's index
  const previousTableIndex = body.getChildIndex(previousTable);
  // Insert the last table's copy under the previous table  in your Doc
  body.insertTable(previousTableIndex + 1, bottomTableCopy);
  // Remove the original last table
  body.removeChild(bottomTable);
}

function getDesireTables(){
  const tablesArr = body.getTables().slice(-3);
  // Get the parent element type to check if it's a cell
  const parentELementType = tablesArr[tablesArr.length - 1].getParent().getType();
  if(parentELementType ===  DocumentApp.ElementType.TABLE_CELL){
    // If there's a table inside a table, return this
    return tablesArr.slice(0, 2);
  }
  else{
    return tablesArr.slice(-2);
  }
}

Что я сделал, чтобы получить последние две таблицы в Do c, то я сделал копию последней и с индексом предыдущей, я вставил ее под предыдущую.

Редактировать

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

Документы

Вот документы, которые я использовал, чтобы помочь вам:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...