如何在 Apps 脚本中设置表格的水平对齐方式

Sea*_*day 6 google-docs-api google-apps-script

我无法找到使用 Google Apps 脚本水平对齐 Google 文档中表格的方法。我彻底检查了所有文档,也盲目地尝试了几种方法。

尝试一:

var cells = [
  ['Company', rowData[3]],
  ['Title', rowData[4]],
];

var tableStyle = {};
tableStyle[DocumentApp.Attribute.HORIZONTAL_ALIGNMENT] = DocumentApp.HorizontalAlignment.RIGHT;

var mentorTable = body.appendTable(cells);

var myTable = body.appendTable(cells);
myTable.setAttributes(tableStyle);
Run Code Online (Sandbox Code Playgroud)

尝试二:

var cells = [
  ['Company', rowData[3]],
  ['Title', rowData[4]],
];

var mentorTable = body.appendTable(cells);
myTable.setAlignment(DocumentApp.HorizontalAlignment.RIGHT);
Run Code Online (Sandbox Code Playgroud)

Google Docs UI 支持从“表属性”菜单选项更改此属性。

关于如何使用 Google Apps 脚本对齐表格有什么想法吗?

Mat*_*Aff 5

我意识到这个问题相对较旧,但我发现以下内容对我有用。我需要将其设置为子单元格,而不是直接在单元格上设置对齐方式。

// create table
table = body.appendTable();

// add row
var tr = table.appendTableRow();

// add cell and right align
var td = tr.appendTableCell('hello world!');
td.getChild(0).asParagraph().setAlignment(DocumentApp.HorizontalAlignment.RIGHT);
Run Code Online (Sandbox Code Playgroud)


Ger*_*rdo 0

我也认为您可以将属性设置为完整的表格,但我只能获取每个单元格的内容,然后添加属性。

在下面的代码中,我查找文档中的表格,转到每个单元格,然后应用格式。我知道这不应该是这样的,但找不到更简单的方法来做到这一点。

希望能帮助到你。

function myFunction() {
  var doc = DocumentApp.getActiveDocument();

   var style = {};
   style[DocumentApp.Attribute.HORIZONTAL_ALIGNMENT] = DocumentApp.HorizontalAlignment.RIGHT;

  var body  = doc.getBody();

  for(var i = 0 ; i < body.getNumChildren(); i++)
  {
    if(body.getChild(i).getType() ==  'TABLE')
    {
      var table = body.getChild(i).asTable();
      var rows = table.getNumRows();
      var cols = table.getChild(0).asTableRow().getNumChildren();

      for(var j =0 ; j< rows; j++)
      {
        for(var k =0; k<cols; k++)
        {
          body.getChild(i).asTable().getCell(j,k).getChild(0).setAttributes(style);
        }      
      }
    }
  }  
}
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,赫拉尔多。这似乎使表中的每个单元格右对齐。我实际上想将表格本身与文档中的右侧对齐。 (2认同)