2015-07-20 4 views
1

Я не могу найти способ горизонтально выровнять таблицу в Google Doc с помощью скрипта Google Apps. Я тщательно проверил всю документацию, а также слепо попробовал несколько подходов.Как установить горизонтальное выравнивание по таблице в сценарии приложений

Покушение One:

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 UI поддерживает изменение этого атрибута из "Свойства таблицы" опции меню.

Любые мысли о том, как выровнять таблицу с помощью скрипта Google Apps?

+0

запрос Функции для таблицы центрирования с помощью Apps Script добавлен в Google трекер, вы можете «звезды» Это: https://issuetracker.google.com/issues/36765133 – Kos

ответ

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); 
     }  
     } 
    } 
    } 
} 
+1

Спасибо, Херардо. Похоже, что выравнивание каждой ячейки в таблице выравнивается по правому краю. Я хочу фактически выровнять таблицу непосредственно в документе. – SeanMaday

 Смежные вопросы

  • Нет связанных вопросов^_^