如何使用 Google App 脚本将 Google 电子表格中的指定数据附加到 Google 文档?

How to Append a table with specified data from Google Spreadsheet to Google Doc using Google App Script?

作为标题,我尝试使用 GAS 将 table 附加到来自 Google Spreadsheet 的 Google 文档。到目前为止,我能找到的 the post and some scripts 是关于附加整个 sheet,而不是选定或指定的行或列。下面是片段。我应该怎么做才能使代码片段满足我的需要?请指教

p.s。异常信息: 异常:参数 (number[]) 与 DocumentApp.Body.appendTable 的方法签名不匹配。 会在我执行脚本后弹出。

function get_insertion_and_deletion_value(fileID)
{
  var url="MY URL";
  var SpreadSheet = SpreadsheetApp.openByUrl(url);
  var  ss = SpreadSheet.getSheetByName("LOG");
  var values = ss.getDataRange().getValues();
  var reportHeader = "Report Header";
  var ad= DocumentApp.openById("MY ID");
  var body = ad.getBody();
  var info_table=[];
  for(var i=0, iLen=values.length; i<iLen; i++)
  {
    if(values[i][0]=="MYID")
    {
      var delete_string=ss.getRange(i+1,3).getValue();
      var insert_string=ss.getRange(i+1,7).getValue();
      var error_type=ss.getRange(i+1,13).getValue();
      var correction_content=ss.getRange(i+1,14).getValue();
      info_table.push(ss.getRange(i+1,3).getValue(),ss.getRange(i+1,7).getValue(),ss.getRange(i+1,13).getValue(),ss.getRange(i+1,14).getValue())
    }
  }
  body.insertParagraph(0, reportHeader).setHeading(DocumentApp.ParagraphHeading.HEADING1);
  table = body.appendTable(info_table);
  
  
  var tableHeader = table.getRow(0);
  tableHeader.editAsText().setBold(true).setForegroundColor('#ffffff');
  var getCells = tableHeader.getNumCells();
  
  for(var i = 0; i < getCells; i++)
  {
    tableHeader.getCell(i).setBackgroundColor('#BBB9B9');
  }


   return info_table;
}

我建议您更改 for 循环,如图所示。我删除了未使用的变量。首先,您需要像电子表格 setValues() 一样构建行,因此我将值列表包含在 [] 中。第二,你已经有了这些值,所以所有这些 ss.getRange(i+1,3).getValue() 都是多余的,并导致对服务器的另一个调用。请记住,第 3 列是值数组中的索引 2。所以我刚刚使用了您从 getDataRange().getValues().

获得的值
for(var i=0, iLen=values.length; i<iLen; i++)
{
  if(values[i][0]=="MYID")
  {
    info_table.push([values[i][2],values[i][6],values[i][12],values[i][13]]);
  }
}