OpenOffice, частичное изменение локальных настроек

Аватар пользователя sergeil

Есть такой замечательный The Comma Separated Value (CSV) File Format. http://www.creativyst.com/Doc/Articles/CSV/CSV01.htm#FileFormat

Так вот... Этот формат я очень интенсивно использую. Генерю в нем отчеты и отсылаю по EMail. Потом юзеры открывают эти отчеты в Excel по Click-Click.

Если на Win-машине настроены русские или украинские LOCALE, то для усмирения Excel необходимо и достаточно переопределить два параметра (в панели управления) для текущего языка
1. Разделитель полей: с "точка с запятой" на "запятая"
2. Разделитель целая/дробной: с "запятая" на "точка"
и Excel это замечательно принимает как руководство к действию...

С OpenOffice все намного сложне.. Он игнорирует настройки системы, а внутри себя эти характериситики настроить не дает...

Возникает неоднозначность интерпритации формата CVS. По одним правилам он должен восприниматься буквально (точка - разделитель полей, а запятая - целой/дробной), а по другим - использовать правильный, зависящий от LOCALE разделитель полей и целой-дробной части... Так он и воспринимается - через пень-колоду...

Кто-нибуть настраивал для OpenOffice настройки LOCALE поотдельности без пересборки из исходников?
И если да, то как?

Аватар пользователя rjaan

Re: OpenOffice, частичное изменение локальных настроек

sergeil писал(а):
Кто-нибуть настраивал для OpenOffice настройки LOCALE поотдельности без пересборки из исходников?
И если да, то как?

Цитата:
sergeil пишет:

Кто-нибуть настраивал для OpenOffice настройки LOCALE поотдельности без пересборки из исходников?
И если да, то как?

Вот тут статейка есть,Importing Tabular Data : CSV Files,про импорт файлов в формате CVS/text. Правда, давненько я ей пользовался может быть, что-нибудь поминялось.

Аватар пользователя sergeil

Re: OpenOffice, частичное изменение локальных настроек

rjaan писал(а):
Вот тут статейка есть,Importing Tabular Data : CSV Files,про импорт файлов в формате CVS/text. Правда, давненько я ей пользовался может быть, что-нибудь поминялось.

Спасибо, rjaan.
Но если-бы все было так просто, то все уже давно было бы сделано...

Попробуйте сами...


"Текстовое поле","Поле даты","Плавающее","Целое"
,,,
"Это текстовое поле",15.12.2006,-291.820,101

Этот файл нормально открывается только при условии, что в OpenOffice выбран
{Сервис} {Параметры} {Настройка языка} {Языка} Локальные настройки: "Английский(США)"

При выборе "Русский" или "Украинский" правильно открыть этот файл невозможно. Если разделитель полей еще можно указать, то разделитель целая-дробная явно указан быть не может... Он жестко зашит в настройки языка...

Аватар пользователя rjaan

Re: OpenOffice, частичное изменение локальных настроек

sergeil писал(а):
При выборе "Русский" или "Украинский" правильно открыть этот файл невозможно. Если разделитель полей еще можно указать, то разделитель целая-дробная явно указан быть не может... Он жестко зашит в настройки языка...

Версия OOo: 2.0
Локаль: KOI8-R

Параметры языка:

Пользовательский интерфейс: Стандарт
Локальные настройки: Стандарт
Decimal separator key: установлен.
Валюта по умолчанию: Стандарт
Язык документов по умолчанию: Русский

Вывод locale:

LANG=ru_RU.KOI8R
LC_CTYPE="ru_RU.KOI8R"
LC_NUMERIC="ru_RU.KOI8R"
LC_TIME="ru_RU.KOI8R"
LC_COLLATE="ru_RU.KOI8R"
LC_MONETARY="ru_RU.KOI8R"
LC_MESSAGES="ru_RU.KOI8R"
LC_PAPER="ru_RU.KOI8R"
LC_NAME="ru_RU.KOI8R"
LC_ADDRESS="ru_RU.KOI8R"
LC_TELEPHONE="ru_RU.KOI8R"
LC_MEASUREMENT="ru_RU.KOI8R"
LC_IDENTIFICATION="ru_RU.KOI8R"
LC_ALL=
ВложениеРазмер
text_impot.gif 76.26 КБ
Аватар пользователя sergeil

Re: OpenOffice, частичное изменение локальных настроек

А после импорта что? И как значения интерпретируются?
Попробуйте в соседних ячейках применить формулу к плавающему...

ВложениеРазмер
cvs.GIF 23.56 КБ
Аватар пользователя rjaan

Re: OpenOffice, частичное изменение локальных настроек

sergeil писал(а):
Попробуйте в соседних ячейках применить формулу к плавающему...

С плавающей тут надо разбираться, а не с импортом текста, либо мы что-то делаем не так... скорее всего.
Например, =SUM(C3:C4), где С3=-291.820 и C4=111.0, равно нулю.

Аватар пользователя sergeil

Re: OpenOffice, частичное изменение локальных настроек

Цитата:
rjaan пишет:

sergeil писал(а):
Попробуйте в соседних ячейках применить формулу к плавающему...

С плавающей тут надо разбираться, а не с импортом текста, либо мы что-то делаем не так... скорее всего. Например, =SUM(C3:C4), где С3=-291.820 и C4=111.0, равно нулю.

Все мы делаем так... Просто тип данных в ячейках распознается как текст...

Для России и Украины разделитель целых и дробных - запятая... И если с разделителем полей OOo справился, то с плавающими числами - нет...

Также не все хорошо, если установить в OpenOffice английскую локаль. Плавающие будут восприниматься правильно, а вот даты...

Точка, как разделитель даты, мне очень нравится, поскольку позволяет избежать неоднозначности формата. Если использовать слэшь (/), то могут путаться местами день и месяц, поскольку оба формата (DD/MM/YY и MM/DD/YY) используются.

Аватар пользователя rjaan

Re: OpenOffice, частичное изменение локальных настроек

sergeil писал(а):
Все мы делаем так... Просто тип данных в ячейках распознается как текст...

У меня распознался, как текстовый(ячейка A), даты(ячейка B), числовой(ячейки C,D) в стандартном формате.

sergeil писал(а):
"Текстовое поле","Поле даты","Плавающее","Целое"
,,,
"Это текстовое поле",15.12.2006,-291.820,101

Я импортирвал ваш текст, значения и типы ячеек соответствовали данным в них. Разделитель, как я уже писал ниже(см. диалог ипорта в файле text_import.gif) ставил запятую, если запятая будет отделять целую и дробную часть, то наверноя, не пробовал, OOo распознает их как отдельные ячейки. Поэтому, если используется запятая, при отделении целой и дробной части, то лучше в качестве разделителя использовать точку с запятой, по-мойму, так будет логичнее.

Аватар пользователя sergeil

Re: OpenOffice, частичное изменение локальных настроек

rjaan писал(а):
... Поэтому, если используется запятая, при отделении целой и дробной части, то лучше в качестве разделителя использовать точку с запятой, по-мойму, так будет логичнее.

При таком подходе возникает несколько проблем...
1. Использование национально-зависимых разделителей делает невозможным использовать один и тот-же файл в различных локализациях OpenOffice.
2. Формат CVS имеет формальное описание, получившее отражение даже в его названии (Comma Separated...).
3. Формат CSV весьма удобен для формирования таблиц из программ. Много-ли сред печатает национально-зависимые плавающие? А если таблица создается на хосте с одной локализацией, а используется на машине с другой локализацией?

Аватар пользователя rjaan

Re: OpenOffice, частичное изменение локальных настроек

sergeil писал(а):
При таком подходе возникает несколько проблем...
1. Использование национально-зависимых разделителей делает невозможным использовать один и тот-же файл в различных локализациях OpenOffice.
2. Формат CVS имеет формальное описание, получившее отражение даже в его названии (Comma Separated...).
3. Формат CSV весьма удобен для формирования таблиц из программ. Много-ли сред печатает национально-зависимые плавающие? А если таблица создается на хосте с одной локализацией, а используется на машине с другой локализацией?

Речь идет о разделитялях типа запятой? Или о концепции использования CVS, как один из вариант переносимости данных в электронных таблицах(в т.ч. баз данных)?
В таком случае, тут надо все опробировать, в т.ч. о механизме интернациализации. Есть некоторые шароховатости в представлении типа OOo, когда он понимает тип импортированных данных, но не приводит их к своему формату по родному языку.

Аватар пользователя sergeil

Re: OpenOffice, частичное изменение локальных настроек

rjaan писал(а):
... о концепции использования CVS, как один из вариант переносимости данных в электронных таблицах(в т.ч. баз данных)?

Да...

Нужен формат данных, который соответствует следующим требованиям...

1. Достаточно прост, что-бы создание файла данных было возможно подручными средствами в BASH, KSH с использованием ISQL.
2. Формат должен поддерживаться MSOffice-2000(и выше) и OpenOffice-2.0(и выше).
3. CPU, OS и Локаль хоста, на которой будет создан файл данных не будет соответствовать CPU, OS и локали машин, где эти данные будут использоваться...

RSS-материал