Установить цвет и стиль границы в электронной таблице программно

В Таблице Google на панели инструментов под кнопкой границы также есть кнопка для изменения цвета и изменения стиля рамки.

Как можно получить доступ к скрипту Google Apps?

Функция setBorderColor которая описана для документов, кажется недоступной для электронных таблиц.

Ответ 1

Исходная проблема была исправлена по состоянию на 12 января 2016 года. Диапазон теперь имеет следующие методы:

Примеры приведены в документации; здесь, как установить пунктирную красную границу *:

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];

var cell = sheet.getRange("B2");
// Sets borders on the top and bottom, but leaves the left and right unchanged
// Also sets the color to "red", and the border to "DASHED".
cell.setBorder(true, null, true, null, false, false, "red", SpreadsheetApp.BorderStyle.DASHED);

* Исправлено, в соответствии с комментарием: документация неверна, она должна быть SpreadsheetApp.BorderStyle.DASHED/DOTTED/SOLID, а не Range. - gotofritz

Ответ 2

В настоящее время свойства setBorder() не позволяют нам предоставлять цвет и стиль. Существует открытый вопрос, вы можете следить здесь.

Ответ 3

Вы можете сделать небольшой трюк. Скопируйте форматирование в цветной пограничной ячейке туда, где хотите.

var ss = SpreadsheetApp.getActiveSpreadsheet();
var source = ss.getSheets()[0];
var destination = ss.getSheets()[1];

var blueBorderRange = source.getRange("B2:D4");

// This copies the formatting in B2:D4 in the source sheet to
// D4:F6 in the second sheet
blueBorderRange.copyFormatToRange(destination, 4, 6, 4, 6);