( Пример документа здесь )
Я делаю документ с несколькими десятками таблиц, около половины из которых скопированы с одной веб-страницы. ( Эта * .) Эта страница не имеет такого же форматирования по умолчанию, как 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 в Документах и содержала весь контент вручную. Эта невидимая разница становится видимой сразу после запуска этого скрипта.
До:
После:
Я предполагаю, что некоторые метаданные сохраняются с момента их копирования, что переопределяет атрибуты, установленные в сценарии. Но я понятия не имею, что или как я мог бы заставить их перестать переопределять. Изменение вещей вручную явно работает, но не восстанавливает способность делать вещи программно.