3

У меня есть источник данных, где точка используется в качестве десятичного разделителя, то есть: 1.49 означает «полтора и почти половина». Не могу изменить это.

Этот номер должен быть скопирован в числовую ячейку в Excel или Calc. Файл является общедоступным, и любой может его получить (получить его здесь), поэтому я не могу контролировать пользовательский ПК / программу.

Большинство пользователей имеют итальянский язык с языковым стандартом it_IT, где десятичные дроби разделены запятыми, то есть 1,49 означает «полтора» (обратите внимание на запятую вместо точки).

Когда пользователь итальянского языка пытается скопировать и вставить 1.49 из источника данных в свою числовую ячейку, Calc/Excel превращается в банан, потому что он не распознает число как десятичное число.

Если я установлю язык в ячейке, все будет работать .... пока я не закрою программу. Если я снова открою документ, настройка будет потеряна, и она больше не будет работать

Итак, мой вопрос:

  1. Можно ли принудительно установить языковой стандарт файла / листа в "en_US", независимо от пользовательского языкового стандарта?
  2. Можно ли привязать атрибут Language?
  3. Любая другая идея? (пожалуйста, не "попросите пользователя изменить настройки")

Я бы предпочел избегать макросов, если это возможно.

Спасибо!

Обновление: я нахожусь на Windows 10 x64, и я только что обновил до LibreOffice 5.4.4 x64. Настройка языка для каждой ячейки по-прежнему не сохраняется. Это даже не ясно мне , если он должен быть сохранен , или если это просто настройка вида (догадается бывшим, так как сохранить кнопки загораются , когда я делаю это ..)

2 ответа2

0

Мои друзья из TurboLab.it предложили лучшее решение на данный момент:

  1. установить ячейку, предназначенную для принятия ввода пользователя как "текст"
  2. в соседней временной ячейке замените точку запятой на что-то вроде =SUBSTITUTE(E16;".";",")
  3. посчитаем замененное значение
  4. преобразовать его, если необходимо

Окончательный файл для тех, кто заинтересован, доступен здесь.

Единственным существенным недостатком является то, что это работает, только если у пользователя есть локаль, где "запятая" - это десятичный разделитель, например, итальянский.

НТН.

0

Ручное решение, которое будет повторяться при каждой вставке:

После копирования и вставки; вставленные ячейки выделены ...
Немедленно используйте Find & Replace, сначала замените любое "." (разделитель тысяч) с "" (т.е. "ничего"), затем замените "," (оригинальный разделитель десятичных дробей) на "." новый десятичный разделитель).

Возможно, вам придется использовать "Специальная вставка", чтобы добавить 0 или умножить на 1, чтобы их можно было интерпретировать как числа (==> поместите 1 или 0 в любую ячейку, скопируйте их, затем выполните "Специальная вставка" и выберите "добавить"). значение "или" умножить значение ").

Автоматизация: "Записать макрос", сделать выше, "Остановить запись". Там у вас также есть возможность назначить сочетание клавиш.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .