我知道Document的脚本API比Sheets的脚本API差,但我有一些我需要使用它的实例。在一种情况下,我想使用脚本向表中添加一行(或多行),但我无法使.addTableRow()工作。我没有得到任何错误,但我也没有添加任何行。有人能给我一个正确方向的推动吗? 这是一个例子:
function addRows() {
var d = DocumentApp.getActiveDocument();
var t = d.getBody().getTables()[0];
var qn = d.getSelection().getRangeElements().length;
for (var i=0;i<qn;i++) {t.appendTableRow();} //append number of rows selected--doesn't work!
}
虽然我第一次在另一个应用程序中遇到了这个问题,我只是想在一个成功的脚本的末尾附加一行。
答案 0 :(得分:0)
如果您熟悉如何在html中构建表格。其表格结构如下:
<table>
<tr><th>First Header</th><th>Second Header</th><th>Third Header</th></tr>
<tr><td>Some Content</td><td>More Content</td><td>And End of Row</td></tr>
</table>
有点像那样。除非您还添加了td之间的表数据或内容,否则添加表行不会执行任何操作。在html的情况下,您可以控制th和td的样式,因为它们是不同的标签。在这种情况下,您可以通过在构建它们时为它们分配不同的样式来控制它们的样式。所以代码往往是这样的。
function addTableRow()
{
var thStyle = {};
thStyle[DocumentApp.Attribute.BOLD]=true;
thStyle[DocumentApp.Attribute.FONT_SIZE]='12';
var tdStyle = {};
tdStyle[DocumentApp.Attribute.FONT_SIZE]='8';
var datA = ["dog","lion","beaver","antelope"];
var doc = DocumentApp.getActiveDocument();
var bdy = doc.getBody();
var tbl = bdy.getTables()[0];
for(var j = 0; j < 2;j++)
{
var tr = tbl.appendTableRow();
for(var i = 0 ; i < 4; i++)
{
var td = tr.appendTableCell(datA[i]);
if(j==0)td.setAttributes(thStyle);
if(j==1)td.setAttributes(tdStyle);
}
}
}
Google网站上似乎没有很多很好的例子,但还有一些其他网站做得很好。我选择了大部分here.