如何在 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);
该方法有两个参数:
- 索引位置,因为你在前面,它总是 0。
- table.
该方法还有其他变体,它们采用不同的参数,但我认为这是您需要的。
参考
我正在使用 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);
该方法有两个参数:
- 索引位置,因为你在前面,它总是 0。
- table.
该方法还有其他变体,它们采用不同的参数,但我认为这是您需要的。