Скрипт для автозамены символов в spreadsheets

Рейтинг: 0Ответов: 1Опубликовано: 16.03.2015

Столкнулся с такой проблемой: Google формы при сохранении данных в таблицу изменяют в числах разделитель десятичной части с «запятой» на «точку». В итоге вместо цифр в таблице имеем текст. Сейчас меняю в столбцах «точку» на «запятую» вручную через "Меню-Правка-Найти и заменить". Но хотелось бы это автоматизировать. По разным примерам из Интернета написал следующее:

function onOpen() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  var entries = [{name : "Замена точки на запятую",functionName : "ReplaceDotToComma"}];
  sheet.addMenu("Скрипты", entries);
};

function ReplaceDotToComma() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("Страница 2")
  var r = sheet.getRange("A:B");
  var rws = r.getNumRows();
  var cls = r.getNumColumns();
  var i, j, a, fnd, rpl;
  fnd = ".";
  rpl = ",";
  for (i=1;i<=rws;i++) {
    for (j=1;j<=cls;j++) {
      a=r.getCell(i, j);
      a=a.toString().replace(fnd, rpl);
      r.getCell(i, j).setValue(a);
    }
  }
 }

Но что-то не работает. Прошу помощи, как правильно написать команду замены? Готов на любую помощь. Заранее благодарен.

Ответы

▲ 2

Действительно ли вам нужен скрипт? Попробуйте настроить Форму.

Действительно, формат числа поддерживается "нормально" только для систем, где разделителем является точка. Но вы можете создать текстовое поле с проверкой на значение, используя регулярное выражение с паттерном:

 \d+(?:,{1}\d+)