#google-apps-script
#google-apps-script
Вопрос:
У меня есть скрипт приложений Google Sheets, который использует этот метод для хранения данных: sheet.getRange(номер строки, номер столбца).setValue(строка);
Позже эти значения извлекаются с помощью: theRowData = sheet.getRange(r, FIRST_DATA_COLUMN, 1, MAX_COLS).getValues()[0];
Похоже, это работает довольно хорошо, за исключением случаев, когда строка содержит значение, похожее на дату (например, «6 декабря 2020 года». Затем getValues(), похоже, извлекает значение даты (а затем преобразует его в очень подробную строку), а не в строку, которая была записана. В этом случае я не хочу такой оценки того, что означают данные. Я намерен записать эти значения как константы, которые не нуждаются и не требуют интерпретации (например, как это было бы сделано с помощью апострофа в Excel со значением типа «‘6-Dec-2020»). Есть ли способ получить точно такое же значение, которое было сохранено (или сохранить точно такое же значение, которое было предназначено), в точно таком же формате?
Для этого конкретного примера проблемы я возвращаю «Sun Dec 06 2020 00:00:00 GMT-0500 (восточное стандартное время)», когда то, что я написал (и что я хочу вернуть), является «6-Dec-2020». Я понимаю, что мог бы установить числовые форматы, но это не всегда будет работать, поскольку эти значения (которые, по общему признанию, выглядят как даты) иногда представлены в других форматах, например, «6 декабря», и в этом случае мне понадобится «6 декабря» при чтении.
Ответ №1:
Использование getDisplayValue()
или getDisplayValues()
.
Отображаемое значение учитывает форматирование даты, времени и валюты, включая форматы, автоматически применяемые в соответствии с настройкой языка электронной таблицы
Комментарии:
1. Очевидно, что это так. Но вопрос в том, как этого избежать. Конечно, есть какой-то способ.
2. Упс, я неправильно прочитал — не увидел «использовать getDisplayValue() … » комментарий. Отлично; решил мою проблему. Спасибо!