在 Google Docs Apps 脚本中创建一个非统一的 table
Create a non uniform table in Google Docs Apss Script
我正在寻找两种方法来实现我想要的。都没有成功。
我想要的:通过单击菜单按钮,我希望将 table 插入到我正在编辑的 Google 文档中(在 MS Word 中我只会使用宏)。 table 是非统一的,但所有行都应填满文档的宽度。
方法 1:我在另一个 Google 文档中制作了 table 并尝试“copy/paste” 内容,但我总是以错误告终:
var docToCopyID = '---The Id of the Google Doc with only a table in it---';
var bodyToCopy = DocumentApp.openById(docToCopyID).getBody();
var tableToCopy = bodyToCopy.getTables[0];
var docBody = DocumentApp.getActiveDocument().getBody();
docBody.appendTable(tableToCopy);
我得到的错误是(翻译自丹麦语):
异常:应读取对象 DocumentApp.Body 时的意外错误、方法或属性 appendTable。
方法二:我尝试通过代码构建table,结果是单元格之间有一个空行:
var docBody = DocumentApp.getActiveDocument().getBody();
var cells1 = [
['Beslutning'],
['']
];
var cells2 = [
['Ansvarlig','','Dato','dd.mm.yyyy']
];
docBody.appendTable(cells1);
docBody.appendTable(cells2);
无论我最终得到的是干净的代码还是使用 copy/paste 方法,对我来说都无关紧要。提前致谢!
可能需要更正您的第一个代码中的两行:
function myFunction() {
var docToCopyID = '###';
var bodyToCopy = DocumentApp.openById(docToCopyID).getBody();
var tableToCopy = bodyToCopy.getTables()[0]; // <--- here ()
var docBody = DocumentApp.getActiveDocument().getBody();
docBody.appendTable(tableToCopy.copy()); // <--- here .copy()
}
至于方法二,应该是这样写的:
function create_table() {
var docBody = DocumentApp.getActiveDocument().getBody();
var row1 = ['Beslutning', '', '', ''];
var row2 = ['Ansvarlig', '', 'Dato', 'dd.mm.yyyy'];
var table = [row1, row2];
docBody.appendTable(table);
}
但老实说,我不明白你所说的 'non uniform' table 是什么意思。你能展示一下它们的样子吗?
我正在寻找两种方法来实现我想要的。都没有成功。
我想要的:通过单击菜单按钮,我希望将 table 插入到我正在编辑的 Google 文档中(在 MS Word 中我只会使用宏)。 table 是非统一的,但所有行都应填满文档的宽度。
方法 1:我在另一个 Google 文档中制作了 table 并尝试“copy/paste” 内容,但我总是以错误告终:
var docToCopyID = '---The Id of the Google Doc with only a table in it---';
var bodyToCopy = DocumentApp.openById(docToCopyID).getBody();
var tableToCopy = bodyToCopy.getTables[0];
var docBody = DocumentApp.getActiveDocument().getBody();
docBody.appendTable(tableToCopy);
我得到的错误是(翻译自丹麦语): 异常:应读取对象 DocumentApp.Body 时的意外错误、方法或属性 appendTable。
方法二:我尝试通过代码构建table,结果是单元格之间有一个空行:
var docBody = DocumentApp.getActiveDocument().getBody();
var cells1 = [
['Beslutning'],
['']
];
var cells2 = [
['Ansvarlig','','Dato','dd.mm.yyyy']
];
docBody.appendTable(cells1);
docBody.appendTable(cells2);
无论我最终得到的是干净的代码还是使用 copy/paste 方法,对我来说都无关紧要。提前致谢!
可能需要更正您的第一个代码中的两行:
function myFunction() {
var docToCopyID = '###';
var bodyToCopy = DocumentApp.openById(docToCopyID).getBody();
var tableToCopy = bodyToCopy.getTables()[0]; // <--- here ()
var docBody = DocumentApp.getActiveDocument().getBody();
docBody.appendTable(tableToCopy.copy()); // <--- here .copy()
}
至于方法二,应该是这样写的:
function create_table() {
var docBody = DocumentApp.getActiveDocument().getBody();
var row1 = ['Beslutning', '', '', ''];
var row2 = ['Ansvarlig', '', 'Dato', 'dd.mm.yyyy'];
var table = [row1, row2];
docBody.appendTable(table);
}
但老实说,我不明白你所说的 'non uniform' table 是什么意思。你能展示一下它们的样子吗?