Components for Delphi and C++ Builder.

Перейти в английский форум
Перейти на EhLib.com
Текущее время: 28 мар 2024, 11:46

Часовой пояс: UTC




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Неверный экспорт сетки в Excel
СообщениеДобавлено: 27 янв 2020, 08:35 
Не в сети

Зарегистрирован: 17 окт 2016, 13:19
Сообщений: 50
Откуда: Россия, Москва
Добрый день.
При экспорте сетки в Excel (средствами TDBGridEh) пропадает разделитель дробной части и данные выглядят неверно (поле F2).
Если в данных 2 знака после запятой, то все выводится нормально. Иначе как описано выше
Или у меня что-то неправильно при экспорте?
Заранее благодарен.

Delphi XE5
Ehlib Build 9.4.021 without source

Это данные в проекте
[img]Proj.jpg[/img]

Это при экспорт в Excel
[img]ExpExcel.jpg[/img]

Файл с проектом прикрепил.


Вложения:
Комментарий к файлу: Это при экспорт в Excel
ExpExcel.jpg
ExpExcel.jpg [ 82.28 KiB | Просмотров: 845 ]
Комментарий к файлу: Это данные в проекте
Proj.jpg
Proj.jpg [ 41.01 KiB | Просмотров: 845 ]
ExportDBGridEh.rar [62.72 KiB]
Скачиваний: 74
Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Неверный экспорт сетки в Excel
СообщениеДобавлено: 27 янв 2020, 10:27 
Не в сети

Зарегистрирован: 23 мар 2017, 13:41
Сообщений: 70
Здравствуйте, эта ошибка связана с тем, что скорее всего при експорте в xls не учитываются региональные настройки, так как задействован ole.
Так к примеру при експорте в xlsx, использується инвариантный формат (e.g. #,##0.00), а вот с ole такой вариант не пройдет, ему надо скармливать что-то на подобии такого (e.g. # ##0,00), да и к тому же нужно делать некий запас на разделители тысячных частей (e.g. ### ### ### ##0,00).

Так что либо нужно поигратся с DisplayFormat столбца либо писать свой экспорт.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Неверный экспорт сетки в Excel
СообщениеДобавлено: 27 янв 2020, 12:00 
Не в сети

Зарегистрирован: 17 окт 2016, 13:19
Сообщений: 50
Откуда: Россия, Москва
Konctantin писал(а):
Здравствуйте, эта ошибка связана с тем, что скорее всего при експорте в xls не учитываются региональные настройки, так как задействован ole.
Так к примеру при експорте в xlsx, использується инвариантный формат (e.g. #,##0.00), а вот с ole такой вариант не пройдет, ему надо скармливать что-то на подобии такого (e.g. # ##0,00), да и к тому же нужно делать некий запас на разделители тысячных частей (e.g. ### ### ### ##0,00).

Так что либо нужно поигратся с DisplayFormat столбца либо писать свой экспорт.


Здравствуйте.
С DisplayFormat игрался, результат тот же...
Поставил версию 9.4.019 и запустил проект - такой ошибки нет ))

[img]ExpExcel_9_4_019.jpg[/img]

P.S. поторопился ))) ошибка есть, но только после 4 знака, с 3-я знаками после запятой все нормально )))


Вложения:
ExpExcel_9_4_019.jpg
ExpExcel_9_4_019.jpg [ 82.15 KiB | Просмотров: 830 ]
Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Неверный экспорт сетки в Excel
СообщениеДобавлено: 27 янв 2020, 13:21 
Не в сети

Зарегистрирован: 21 дек 2011, 18:48
Сообщений: 1546
Добрый день.

В строке
Код:
4   :   ExportDBGridEhToOleExcel(DBGridEh1, [oxlsColoredEh, oxlsDataAsDisplayText, oxlsDataAsEditText], True);
вы указываете, что хотите передавать все данные как текст.
Однако эксель почему-то пытается преобразовывать данные в число и делает это неправильно, отбрасывает десятичный разделитель.
На данный момент определить причину не удается.


Как вариант, предлагаем экспортировать числа как числа
Код:
4   :   ExportDBGridEhToOleExcel(DBGridEh1, [oxlsColoredEh], True);


либо использовать для экспорта функцию ExportDBGridEhToXlsx
Код:
      5   : begin
            FName   :=   AppPath   + 'file.xlsx';
            ExportDBGridEhToXlsx(DBGridEh1, FName, [xlsxColoredEh, xlsxDataAsDisplayText, xlsxDataAsEditText], True);
          end;

_________________
Best regards
EhLib support Team


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Неверный экспорт сетки в Excel
СообщениеДобавлено: 27 янв 2020, 15:08 
Не в сети

Зарегистрирован: 17 окт 2016, 13:19
Сообщений: 50
Откуда: Россия, Москва
EhLibSupport писал(а):

Как вариант, предлагаем экспортировать числа как числа
Код:
4   :   ExportDBGridEhToOleExcel(DBGridEh1, [oxlsColoredEh], True);



Точно, глаз замылился... Спасибо!
4-ый вариант подошел!!!


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Часовой пояс: UTC


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB