Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.09.2009, 04:49   #1
maxic
Пользователь
 
Аватар для maxic
 
Регистрация: 10.09.2008
Сообщений: 37
По умолчанию Проблемы с форматом данных

Добрый день.
Выгрузка отчетов при помощи генератора отчетов в Excel приводит к ряду досадных ошибок. Начинается все с того, что все суммы выводятся не через запятую, а через точку. Например,
3,654.78
76.008
и так далее…
Все бы ничего, на крайний случай, все запятые и точки можно изменить макросом, НО!
Если выводится число 2.05, Excel автоматом переводит формат в дату, то есть 02.05.2009 (и т.п.) и после этого вернуть число к нормальному виду можно только построчно анализируя отчет (а это ооочень долго, даже макросом).
Может кто-то сталкивался с такой проблемой и подскажет что можно сделать?
maxic вне форума Ответить с цитированием
Старый 13.09.2009, 08:31   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

А что за "генератор отчетов" Вы используете?
EducatedFool вне форума Ответить с цитированием
Старый 13.09.2009, 09:43   #3
maxic
Пользователь
 
Аватар для maxic
 
Регистрация: 10.09.2008
Сообщений: 37
По умолчанию

Генератор отчетов ИСУ BAAN. Сразу оговорюсь, что типы данных полей отчета выбраны верно.
maxic вне форума Ответить с цитированием
Старый 13.09.2009, 17:51   #4
EugeneS
Форумчанин
 
Регистрация: 06.08.2009
Сообщений: 472
По умолчанию

пример результата такого вывода в Экселе можете привести в виде файла?
EugeneS вне форума Ответить с цитированием
Старый 13.09.2009, 18:39   #5
EugeneS
Форумчанин
 
Регистрация: 06.08.2009
Сообщений: 472
По умолчанию

попробуйте перед выгрузкой отчета изменить в Эксель Сервис - Параметры - Международные - Разделитель целой и дробной части - поставьте "." (точку вместо запятой) или проделать то же самое после выгрузки отчета и проверьте результат

Последний раз редактировалось EugeneS; 13.09.2009 в 18:41.
EugeneS вне форума Ответить с цитированием
Старый 13.09.2009, 18:47   #6
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте maxic.
"Генератор отчетов" как правило выкладывает результат своей работы с шаблон и это хорошо тем, что предварительно можно задать формат ячейкам, или создает файл с "псевдо Excel" форматом. Второй вариант похоже и есть Ваш случай.
Первое что я бы сделал на Вашем месте - посмотреть тело файла текстовым редактором. Возможно достаточно незначительной корректировки для получения желаемого результата.
Второе, только в случае если данные табличного вида, с применением библиотеки ADO подключиться к таблице, открыть рекордсет для редактирования или переложить его на лист Excel с заданным текстовым форматом для дальне6йшего редактирования.
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 14.09.2009, 15:51   #7
maxic
Пользователь
 
Аватар для maxic
 
Регистрация: 10.09.2008
Сообщений: 37
По умолчанию

to_EugeneS:
Цитата:
попробуйте перед выгрузкой отчета изменить в Эксель Сервис - Параметры - Международные - Разделитель целой и дробной части
Большое спасибо за совет, обязательно попробую изменить настройки, может, что дельное получится...


to_Teslenko_EA
Евгений, здравствуйте. Спасибо за внимание к моему вопросу. Теперь о главном.
Первый Вами предложенный вариант широко используется. Правда, только в среде аналитиков и, по мере необходимости, разработчиками. Пользователи такой подход категорически не приемлют, как это ни печально...
Второе..
Цитата:
с применением библиотеки ADO подключиться к таблице
Извините, не совсем поняла про какую таблицу идет речь. Если про таблицу исходной БД, то, боюсь, такой подход себя не оправдает, т.к. генератор выгружает сложные вычисляемые отчеты. А задача разработки ПО для формирования отчета у нас не стоит.
maxic вне форума Ответить с цитированием
Старый 15.09.2009, 04:41   #8
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Цитата:
Если выводится число 2.05, Excel автоматом переводит формат в дату, то есть 02.05.2009 (и т.п.) и после этого вернуть число к нормальному виду можно только построчно анализируя отчет (а это ооочень долго, даже макросом).
А Вы прикрепите выгружаемый файл. А мы попробуем сделать требуемые преобразования быстро.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 15.09.2009, 18:33   #9
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте maxic.
1. "в среде аналитиков и, по мере необходимости, разработчиками..." - предложение было действительно для "разработчика", после анализа по итогам изучения тела файла, создавшего если это возможно код - для автоматизации корректировки. К пользователям это отношения не имеет.
2. "если данные табличного вида" - извините надо было написать "если данные отчета имеют табличный вид", все остальное без изменений - "подключиться к таблице, открыть рекордсет для редактирования или переложить его на лист Excel с заданным текстовым форматом для дальне6йшего редактирования"

SAS888 прав "прикрепите выгружаемый файл", и это будет лучшим решением.

Евгений.

Последний раз редактировалось Teslenko_EA; 15.09.2009 в 18:36.
Teslenko_EA вне форума Ответить с цитированием
Старый 17.09.2009, 16:33   #10
maxic
Пользователь
 
Аватар для maxic
 
Регистрация: 10.09.2008
Сообщений: 37
По умолчанию

Большое спасибо EugeneS, благодаря изменению настроек удалось избежать проблемы дата - число. Что было в самом начале можно посмотреть в файле на листике "дата-число".
Цитата:
SAS888 прав "прикрепите выгружаемый файл", и это будет лучшим решением.
По просьбам знатоков прикрепляю файл.

В прикрепленном файле на листе "форматы" необходимо:
1. убрать крайнюю правую черточку в записях первого столбца ;
2. привести к нормальному виду числа второго-четвертого столбцов.

Попыталась написать макрос на исправление формата первого и третьего столбиков (второй-четвертый, можно исправить по аналогии), но вынуждена признать, зто мой познания в области формул Excel потерпели полное фиаско
Вторая формула макроса имеет ошибку, которую я не знаю как исправить. Причина - символ минуса в формуле.
Код:
 "=IF(RIGHT(RC[1],1)=-,LEFT(RC[1],LEN(С1)-1)*(-1),RC[1])"
Вложения
Тип файла: rar пример_формат.rar (406.5 Кб, 15 просмотров)
maxic вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проблемы экспорта данных из DBGrid в Excel GhostBZ БД в Delphi 11 31.08.2009 07:20
Проблемы с выборкой данных из нескольких таблиц Arkuz БД в Delphi 1 29.07.2009 15:46
Проблемы с записью данных в базу Serval БД в Delphi 4 24.06.2009 19:39
Проблемы с типами данных в Delphi Paul11j Помощь студентам 4 15.05.2009 22:59
Проблемы с динамической структурой данных Mailz Общие вопросы C/C++ 1 21.05.2008 00:18