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

时间:2015-07-20 19:43:01

标签: google-apps-script google-docs-api

我无法使用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);

尝试二:

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

var mentorTable = body.appendTable(cells);
myTable.setAlignment(DocumentApp.HorizontalAlignment.RIGHT);

Google文档用户界面支持从"表格属性"更改此属性菜单选项。

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

2 个答案:

答案 0 :(得分:1)

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

// 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);

答案 1 :(得分: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);
        }      
      }
    }
  }  
}