Google Script - Вставить столбец наследует формат

1

У меня простой код, где в A1 есть дата, например 06/06/2017

То, что я пытаюсь сделать, это добавить три столбца и задать в них формулы. Я добавляю столбцы, используя:

ss.insertColumns(1,3);

Затем я устанавливаю формулы в трех столбцах:

ss.getRange(1,1).setFormula('=MONTH(D1);
ss.getRange(1,2).setFormula('=WEEKNUM(D1);
ss.getRange(1,3).setFormula('=CHOOSE( weekday(D1), "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")');

Однако то, что заканчивается, заключается в том, что все новые столбцы в конечном итоге наследуют формат столбцов A от ранее (или, по крайней мере, то, что я думаю, основываясь на моем довольно ограниченном понимании скрипта Google). Так что в случае появления нового A1 - 05.05.1900. Когда я нажимаю "Формат"> "Номер"> "Номер", он показывает 6. Поэтому число верно, но форматирование неверно.

Как мне решить эту проблему? Готовьте, что у реального файла есть сотни строк дат, я использую циклы для назначения формул.

Теги:
google-apps-script
google-sheets

1 ответ

1

Вы можете установить формат номера ячейки одновременно с настройкой содержимого или формулы. Поэтому в случае

ss.getRange(1,1).setFormula('=MONTH(D1);

это может стать

ss.getRange(1,1).setFormula('=MONTH(D1)').setNumberFormat("0")

Возможные форматы, которые вы можете использовать с .setNumberFormat(numberFormat) являются такими же, как вы можете использовать в самих листах.

В дополнение к решению предпочтительный метод из 3-х ячеек, которые устанавливаются здесь (и в связи с вашим другим вопросом), вместо того, чтобы устанавливать эти формулы по одному, вы можете установить все три с одним вызовом.

ss.getRange(1,1,1,3)
.setFormulas([
    '=MONTH(D1)',
    '=WEEKNUM(D1)',
    '=CHOOSE( weekday(D1), "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")'])
.setNumberFormats(["0","0","text"]);
  • 0
    Спасибо, это работает! Я очень новичок в Google Script, поэтому все эти советы очень много значат для меня.
  • 0
    Только один вопрос - последняя строка дает какую-то ошибку. Невозможно преобразовать массив в объект [] [].
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню