Javascript в скрипте Google Sheets: помощь в использовании setNumberFormat

1

надеясь, что это простая проблема для вас. У меня вообще нет знаний о кодировании. Но использовал приведенный ниже скрипт в Листе Google, чтобы захватить изменение данных с другого листа и ежедневно регистрировать его, добавляя его. Не могу вспомнить, где я нашел скрипт - если бы я это сделал, я бы вернулся и попросил его создателя. Он работает нормально; Единственное, что я должен вручную скопировать, вставить мой предпочтительный формат даты каждый день. Поэтому я хотел бы, чтобы сценарий печатал дату в формате "dd/MM/yyyy" (при сохранении часов и минутных данных внутри ячейки). Я читал и искал в Интернете, и экспериментировал целую вечность, но не могу понять это. Это базовый код:

function recordHistory() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("History");
  var source = sheet.getRange("A2:C2");
  var values = source.getValues();
  values[0][0] = new Date();
  sheet.appendRow(values[0]);
};

Я попытался разместить setnumberformat в разных местах и почти всегда получаю сообщение об ошибке. Возможно, моя лучшая попытка, вдохновленная другими примерами, которые я видел, заключалась в том, чтобы добавить эти новые строки:

function recordHistory() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("History");
  var source = sheet.getRange("A2:C2");
  var values = source.getValues();
  values[0][0] = new Date();
  sheet.appendRow(values[0]);
  var cell = SpreadsheetApp.getActiveSheet().getRange(2, 1, 979);
  cell.setNumberFormat("dd/MM/yyyy");
};

Я надеялся, что это будет форматировать всю строку даты (строка A) после добавления новых данных. Вероятно, неуклюжее решение, даже если оно сработало, но это не так. Это моя единственная попытка, которая не возвращает ошибку! Итак, да? Но формат даты не изменяется. Поэтому я сдаюсь. Есть идеи? Большое большое спасибо

Теги:
spreadsheet
google-sheets-api
google-sheets

1 ответ

0
Лучший ответ

Чтобы указать формат для конкретной ячейки

var cell = sheet.getRange("A2");
cell.setNumberFormat("dd/MM/yyyy");

Чтобы указать формат для диапазона ячеек

var cells = sheet.getRange("A2:C2");
cells.setNumberFormat("dd/MM/yyyy");

См. Документацию по диапазонам и форматам.

  • 0
    Отлично! Я был так близко тоже. Явно неправильно понял совет по документации для getRange. Огромное спасибо!
  • 0
    Рад помочь. Пожалуйста, примите мой ответ, чтобы поставить вопрос для будущих читателей. :)
Показать ещё 1 комментарий

Ещё вопросы

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