如何在 appscript (Google Docs) 中将表格附加到所有其他表格之上

How to append tables in appscript (Google Docs) above all other tables

我正在使用 appendTable() 追加 table。它被附加在我已经拥有的 tables 下面。我希望它附加在它们之上。以前有人这样做过吗?

这是我正在使用的代码(带有注释):

function onOpen() {
  var ui = DocumentApp.getUi();
  //Creates a new manu item "Ledermøte" that triggers the function insertMeetingTemplate
  ui.createMenu("Ledermøte")
    .addItem("Opprett nytt møte", "insertMeetingTemplate")
    .addToUi();
}
function insertMeetingTemplate() {
  //Gets the current document body
  var body = DocumentApp.getActiveDocument().getBody();

  //Gets the document for where the template tables are stored
  let templateDoc = DocumentApp.openById(
    "xxxxx"
  );

  //Gets the body for the template document
  let templateBody = templateDoc.getBody();

  //Gets the two tables in the template document
  var tables = templateBody.getTables();
  var copiedTable = tables[0].copy();
  var copiedTable2 = tables[1].copy();

  //Appends the two tables in the current docuemnt
  body.appendTable(copiedTable);
  body.appendTable(copiedTable2);
}

所以目标是..始终附加在所有其他 tables 之上。

使用insertTable

“append”的字面意思是“在end的后面加点东西”。您正在寻找的是“前置”或“插入”。

没有 prepend 方法,但您可以像这样在 body 上使用方法 insertTable

//Prepends the two tables in the current document
body.insertTable(0, copiedTable);
body.insertTable(0, copiedTable2);

该方法有两个参数:

  1. 索引位置,因为你在前面,它总是 0。
  2. table.

该方法还有其他变体,它们采用不同的参数,但我认为这是您需要的。

参考