Скрипт электронной таблицы Google меняет запятую на точку при чтении из ячейки? - PullRequest
0 голосов
/ 21 января 2019

Итак, я пытаюсь прочитать данные из ячейки в скрипте Google Spreadsheet, но что-то мне не подходит. Я сделал функцию быстрого тестирования, которая берет данные из ячейки, превращает их в строку и возвращает результат, например, так:

function TEST(str)
{
  return str.toString();
}

Тогда я сделал две тестовые ячейки:

A1 with "17"
A2 with "135,136"
A3 with "1,11,29,43,68,74,109,122"

Затем я вызвал свою функцию, и я озадачен результатами

TEST(A1) returns "17"
TEST(A2) returns "135.136"
TEST(A3) returns "1,11,29,43,68,74,109,122"

Так что, похоже, что если есть ровно одна запятая, она вместо этого приводится в точку с полной остановкой, но если их несколько, то ни одна из них не заменяется. Что происходит и как я могу читать данные из ячейки в виде строки со 100% -ной уверенностью, что они никак не изменятся?

Ответы [ 2 ]

0 голосов
/ 22 января 2019

Столбец A, в котором хранятся эти данные, должен изменить формат, и это решит проблему. Выберите столбец -> Формат -> Число - Простой текст . Изменение формата послужит цели.

Надеюсь, это поможет!

0 голосов
/ 22 января 2019

Проблема:

  • В некоторых местах в качестве десятичного разделителя используется ,.Итак, 135,136 является действительным числом (= 135.136).Но 1,11,29,43,68,74,109,122 нет.Действительные числа по умолчанию выровнены по правому краю ячейки (Очистить форматирование ячеек-свидетелей).

Решение (я):

  • Установите свой языковой стандарт правильно, если выВы собираетесь использовать , s как запятые, а не как десятичные разделители ИЛИ
  • Ввод чисел как текста.Используйте ' перед вводом данных в каждую ячейку.'135,136 ИЛИ
  • Отправка входных данных в виде текста.=TEST(TO_TEXT(A1)) ИЛИ
  • Используйте range#getDisplayValues() вместо.
...