Поскольку наш форум обычно отвечает (почти) на все вопросы, то вот ключ к разгадке вопроса о загадочном поведении методов GetValue и SetValue.
Откройте новый документ в P7 или ONLYOFFICE (у меня версия 8.3.3.21) с языком интерфейса "Русский" и занесите в ячейку A1 число 1,2 (или другое дробное).
Выполните макрос (JS):
Код |
---|
function test()
{
const oRange1 = Api.GetActiveSheet().GetRange("A1");
const oRange2 = Api.GetActiveSheet().GetRange("A2");
oRange2.SetValue(oRange1.GetValue());
}
test(); |
У меня в ячейке A2 появляется дата 1 февраля 2025 года с соответствующим форматом ячейки.
Это говорит о следующем (в P7 могут быть другие результаты - проверьте):
1. Метод getRange возврашает строку (string) и для ячеек, содержащих число. Если эта ячейка содержит число, то число преобразуется в текст в соответствии с правилами JS (без учета настроек локали).
2. Метод setRange интерпретирует текст при занесении в ячейку в соответствии с настройками локали.