Как программно применить форматирование таблиц к импортированным таблицам в Документах Google? - PullRequest
0 голосов
/ 20 января 2019

( Пример документа здесь )

Я делаю документ с несколькими десятками таблиц, около половины из которых скопированы с одной веб-страницы. ( Эта * .) Эта страница не имеет такого же форматирования по умолчанию, как Google Docs, поэтому я искал программный инструмент. Это прекрасно работает для настройки заполнения ячеек, межстрочного интервала, размера шрифта и всего остального, что я пытался изменить, но для ширины и цвета границы таблицы это абсолютно не влияет на строки, которые не были впервые созданы в Документах.

Вот важный код:

function makeTablesGood(body) {
  var tables = body.getTables()
  var length = tables.length
  for(var i=0; i < length; i++) {
    makeTableGood(tables[i]);
  }
}
function makeTableGood(table) {
  var style = {};
  style[DocumentApp.Attribute.BORDER_COLOR] ="#000000";
  style[DocumentApp.Attribute.BORDER_WIDTH] = 2;
  table.setAttributes(style);
  var cells = getCells(table);
  for(var k=0; k<cells.length; k++){
    makeCellGood(cells[k]);
  }
}

Перед запуском этого скрипта две нижние таблицы документа выглядят попиксельно. Тем не менее, вторая таблица была скопирована и вставлена, а затем изменили стиль вручную. Третья таблица была создана de novo в Документах и ​​содержала весь контент вручную. Эта невидимая разница становится видимой сразу после запуска этого скрипта.

До: before

После: after

Я предполагаю, что некоторые метаданные сохраняются с момента их копирования, что переопределяет атрибуты, установленные в сценарии. Но я понятия не имею, что или как я мог бы заставить их перестать переопределять. Изменение вещей вручную явно работает, но не восстанавливает способность делать вещи программно.

...