"EhLib.Com"
https://forum.ehlib.com/ru/

Неверный экспорт сетки в Excel
https://forum.ehlib.com/ru/viewtopic.php?f=4&t=2904
Страница 1 из 1

Автор:  as2714 [ 27 янв 2020, 08:35 ]
Заголовок сообщения:  Неверный экспорт сетки в Excel

Добрый день.
При экспорте сетки в 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 | Просмотров: 856 ]
Комментарий к файлу: Это данные в проекте
Proj.jpg
Proj.jpg [ 41.01 KiB | Просмотров: 856 ]
ExportDBGridEh.rar [62.72 KiB]
Скачиваний: 74

Автор:  Konctantin [ 27 янв 2020, 10:27 ]
Заголовок сообщения:  Re: Неверный экспорт сетки в Excel

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

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

Автор:  as2714 [ 27 янв 2020, 12:00 ]
Заголовок сообщения:  Re: Неверный экспорт сетки в Excel

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 | Просмотров: 841 ]

Автор:  EhLibSupport [ 27 янв 2020, 13:21 ]
Заголовок сообщения:  Re: Неверный экспорт сетки в Excel

Добрый день.

В строке
Код:
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;

Автор:  as2714 [ 27 янв 2020, 15:08 ]
Заголовок сообщения:  Re: Неверный экспорт сетки в Excel

EhLibSupport писал(а):

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



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

Страница 1 из 1 Часовой пояс: UTC
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/