如何使用 Google Apps 脚本将 table 居中放置在 google 文档页面中

How do I center a table in a google document page using Google Apps Script

我使用 Google Apps 脚本函数 table 在 google 文档中插入了 table

var grg = body.appendTable(griglia);

我可以格式化 table 中的文本(字体大小、粗细、对齐),我可以格式化单个单元格(背景、前景、边框)。

但是 table 是左对齐的,我希望它在页面中(水平)居中。 在 google 文档用户界面中,这可以通过菜单 "Table>Table properties" 完成,它会生成一个对话框,其中包含 "Table alignment".

的下拉菜单

我找不到从脚本中获取相同内容的方法。 我试过了

var grg = body.appendTable(griglia).setAlignment(DocumentApp.HorizontalAlignment.CENTER);

但我得到一个错误,因为没有为 table 定义 setAlignment 函数(这适用于段落)。

我也试过定义样式

  var gTxt={};
  gTxt[DocumentApp.Attribute.HORIZONTAL_ALIGNMENT] = DocumentApp.HorizontalAlignment.CENTER;
  grg.setAttribute(gTxt);

但这似乎对table没有产生任何影响。 实际上,我也尝试过使用不同的 属性,只是想了解它是如何工作的。

正在使用

gTxt[DocumentApp.Attribute.FOREGROUND_COLOR] = '#ff0000';
grg.setAttribute(gTxt);

table 中的所有文本及其后面的内容变为红色。所以看起来 setAttributes 不是 "limited" 到 table。 我很困惑,因为 in the documentation "setAttributes" 列在 "Table" 下(尽管在示例中它用于段落)。

我做了广泛的研究,但只发现了一个 similar question(实际上基本相同)可以追溯到两年前。 据我了解meta post,我的问题不应该被标记为重复,因为旧问题没有得到真正的回答。

只有一个答案,但它的作者误解了这个问题。 这里的重点是 table,而不是其单元格中的文本(我可以做到这一点)。

我试图对旧问题进行投票或评论,但未能成功,因为我只有几点。

感谢您的任何见解。

目前无法通过 Apps 脚本 table 居中。

在 Google 跟踪器中创建了功能请求,您可以 "star" 它:https://issuetracker.google.com/issues/36765133

一个可能的解决方法是将您的 table 插入到另一个 3 列 table,带有隐藏的边框。默认情况下,第 3 列 table 将填满页面的整个宽度,因此中间单元格自然居中。

 body.appendTable([['','','']])
       .setBorderWidth(0)
       .getCell(0,1)
       .appendTable([['one','two','three']]);

您可以通过调整外部 table 中第 0 列的宽度来进一步调整定位。