Копировать лист документа Google Docs в другой я документирую

Я пробую копировать лист документа Google Docs в другом документе, но неспособен это делать. Кто-то может помогать мне?

Я пробую с объектом Document и Body но я не получаю, máxímo, которого я достиг, состоит в том, чтобы копировать контент, но без формата:

bodyReport.setText(copyBody.getText());

Я думаю о том, чтобы сделать это вручную и он состоит пробегая элементы и он в том, чтобы форматировать, но просвет, достаточно трудолюбивый.

Шрифт функции:

function createReport() {
  try {
    if (TEMPLATE_ID === '') { 
      SpreadsheetApp.getUi().alert("No existe definida en TEMPLATE_ID la plantilla  del informe");
      return
    }
    var docCopy = DocumentApp.openById(TEMPLATE_ID),
        docReport = DocumentApp.create(REPORT_FILE_NAME),
        bodyCopy = docCopy.getBody(),
        bodyReport = docReport.getBody()
    var activeSheet = SpreadsheetApp.getActiveSheet(),
        numberOfColumns = activeSheet.getLastColumn(),
        numberOfRows = activeSheet.getLastRow()

    var activeRow = activeSheet.getRange(1, 1, numberOfRows, numberOfColumns).getValues();
    for (var row = 1; row < numberOfRows; row++) {
      bodyCopy.replaceText('%' + fieldTematica + '%', activeRow[row][columnTematica]);
      bodyCopy.replaceText('%' + fieldImpacto + '%', activeRow[row][columnImpacto]);
      bodyCopy.replaceText('%' + fieldUrgencia + '%', activeRow[row][columnUrgencia]);
      bodyCopy.replaceText('%' + fieldAreaCoordinadora + '%', activeRow[row][columnAreaCoordinadora]);
      bodyCopy.replaceText('%' + fieldActuacionCurso + '%', activeRow[row][columnActuacionCurso]);
      bodyCopy.appendPageBreak(); 
    }

    //bodyReport.appendParagraph(bodyCopy.getParagraphs());
    bodyReport.setText(copyBody.getText());
    docCopy.saveAndClose();
    docReport.saveAndClose();
    //var newFile = DriveApp.createFile(copyFile.getAs('application/pdf'))  

    //copyFile.setTrashed(true)  
    SpreadsheetApp.getUi().alert('Se ha creado un nuevo PDF en su unidad Google Drive')

  } catch(e) {
    Logger.log("ERROR in function createPdf \r\nMessage: " + e.message + "\r\nFile gs: " + e.fileName + "\r\nLine: " + e.lineNumber)
    Logger.log("\r\nUser: " + Session.getActiveUser().getEmail() + ", Date: " + Utilities.formatDate(new Date(), "GMT+1", "yyyyMMdd'_'HH:mm:ss"));
  } 
}
2
задан 23.01.2017, 09:03
0 ответов

Со следующей функцией он подал меня для того, что он хотел, я получил ее от следующего трэда stackoverflow https://stackoverflow.com/questions/19987101/how-to-copy-content-and-formatting-between-google.

function copyDoc() {
  try {
    var sourceDoc = DocumentApp.openById(TEMPLATE_ID).getBody();
    var targetDoc =  DocumentApp.create(REPORT_FILE_NAME);
    var totalElements = sourceDoc.getNumChildren();
    for (var j = 0; j < totalElements; ++j) {
      var body = targetDoc.getBody();
      var element = sourceDoc.getChild(j).copy();
      var type = element.getType();
      if (type == DocumentApp.ElementType.PARAGRAPH) {
        body.appendParagraph(element);
      } else if (type == DocumentApp.ElementType.TABLE) {
        body.appendTable(element);
      } else if (type == DocumentApp.ElementType.LIST_ITEM) {
        body.appendListItem(element);
      } else if (type == DocumentApp.ElementType.INLINE_IMAGE) {
        body.appendImage(element);
      }
      //    ...add other conditions (headers, footers...
    }
    //targetDoc.saveAndClose();
    return targetDoc;
  } catch(e) {
    Logger.log("ERROR in function copyDoc \r\nMessage: " + e.message + "\r\nFile gs: " + e.fileName + "\r\nLine: " + e.lineNumber)
    Logger.log("\r\nUser: " + Session.getActiveUser().getEmail() + ", Date: " + Utilities.formatDate(new Date(), "GMT+1", "yyyyMMdd'_'HH:mm:ss"));
  } 
}
1
ответ дан 03.12.2019, 17:36
  • 1
    Продолжи казаться enumeració n скажи... ¿ не esxite уже finció n " saveAs" для doc, который ты можешь призывать? Когда бы то ни было usé Google Докс programá ticamente, но empezarí за ahí. –  24.01.2017, 14:23
  • 2
    @Richi: ¿ có я говорю, что он твой, или ты это получил от кого-то má s? Того, чтобы не быть твоим deberí схвати реализовывать в atribució n приспособленная, иначе serí в случай плагиата. –  25.01.2017, 05:56
  • 3
    Прости @Rubé n, это первый раз, который я использую stackoverflow, и это не был мой intenció n присуждать мне solució n, я включил в ответ ссылку в трэд, где я нашел solució n. –  25.01.2017, 15:46
  • 4
    @CarlosE.Ferro, пробуйте с какой-то funció n этого типа или даже ища algú n copy в body или сходный, но не encontré ничего. –  25.01.2017, 15:47