首页 > 解决方案 > 将工作表复制到 Google 文档

问题描述

我正在尝试将包含图片的 Google 表格中的表格复制到 Google 文档中。到目前为止,我设法完成了几件事,但不是我需要的结果。

ImportrangeSource Google Sheet - 带有图片的表格,由另一个 Google 表格中的公式填充。

  1. 通过复制appendTable不复制图片
  2. 我设法将表格导出为 pdf blob,但当时无法将其转换为常规的 Google 文档。

任何帮助表示赞赏。

function printDocument() {

  var source = SpreadsheetApp.getActive();
  var spreadsheetId=source.getId();
  var sourcesheet = source.getSheetByName('Printable Shooting Plan');
  var sheetId = sourcesheet.getSheetId();
  var current_lastrow = getLastPopulatedRow(sourcesheet);
  var srcData = sourcesheet.getRange('A1:G'+current_lastrow).getValues();


  var parents = DriveApp.getFileById(source.getId()).getParents();
  if (parents.hasNext()) {
    var folder = parents.next();
  }
  else {
    folder = DriveApp.getRootFolder();
  }

  var doc = DocumentApp.create("Shooting Plan");
  var body = doc.getBody();

  body.insertParagraph(0, 'Shooting Plan').setHeading(DocumentApp.ParagraphHeading.HEADING1).setAlignment(DocumentApp.HorizontalAlignment.CENTER);

  table = body.appendTable(srcData);
  table.getRow(0).editAsText().setBold(true);

  // Copy doc to the directory we want it to be in. Delete it from root.
  var docFile = DriveApp.getFileById(doc.getId());
  folder.addFile(docFile);
  DriveApp.getRootFolder().removeFile(docFile);   
}

function onOpen() {
  var submenu = [{name:"Save Doc", functionName:"printDocument"}];
  SpreadsheetApp.getActiveSpreadsheet().addMenu('Export', submenu);  
}


function getLastPopulatedRow(sheet) {
  var data = sheet.getDataRange().getValues();
  for (var i = data.length-1; i > 0; i--) {
    for (var j = 0; j < data[0].length; j++) {
      if (data[i][j]) return i+1;
    }
  }
  return 0;
}

标签: google-apps-scriptgoogle-sheets

解决方案


推荐阅读