Экспорт в Excel: символ рубля и денежный тип поля

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Экспорт в Excel: символ рубля и денежный тип поля

Сообщение Moneo » 28.06.2017 12:45:07

Добрый день. Использую lazarus 3.6.4, OLE, excel 2016, win7 x64 rus, при записи макроса в excel перевода в денежный тип и его запуске на других диапозонах все работает, но если вызывать команду из lazarus, то выводит доллар и формат похоже не такой:

Код: Выделить всё
ExcelApp.WorkBooks[1].WorkSheets[1].Range('C:C').NumberFormat:= '#,##0,00 $';


Пробовал менять доллар на ₽, но выводит в ячейку 1/2 и при входе в ячейку 1/2 исчезает. Fpspreadsheet не предлагайте, потому что он не умеет делать гистограммы.
Moneo
новенький
 
Сообщения: 10
Зарегистрирован: 21.03.2017 17:04:01

Re: Экспорт в Excel: символ рубля и денежный тип поля

Сообщение Лекс Айрин » 28.06.2017 18:50:46

явно, старая проблема с кодировкой. В экселе win-1252 а в Лазарусе utf8 используй соответствующий перекодировщик.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 4175
Зарегистрирован: 19.02.2013 16:54:51

Re: Экспорт в Excel: символ рубля и денежный тип поля

Сообщение SSerge » 30.06.2017 05:46:32

Лекс Айрин писал(а): win-1252


West europe ISO, да? :mrgreen:

Лекс Айрин писал(а):используй соответствующий перекодировщик


И где знак рубля расположен в байтовых кодировках dos/windows? Нет там места для этого символа, просто исторически.
Перекодировщик его отправит в знак вопроса.
Было бы более корректно, если б сказали "не используйте функции OLE, работающие с байтовыми строками (не используйте функции OLE из API, в имени которых нет прямого указания на работу с WideString, ака постфикс "w")
SSerge
энтузиаст
 
Сообщения: 815
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Re: Экспорт в Excel: символ рубля и денежный тип поля

Сообщение Лекс Айрин » 30.06.2017 09:10:44

SSerge, мда.. я и забым, что знак рубля новый символ(((
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 4175
Зарегистрирован: 19.02.2013 16:54:51

Re: Экспорт в Excel: символ рубля и денежный тип поля

Сообщение wadman » 04.07.2017 10:07:26

Посмотри как выставляется формат у ячеек При экспорте в excel не получается установить формат ячеек Общий
wadman
новенький
 
Сообщения: 74
Зарегистрирован: 18.10.2016 15:54:28

Re: Экспорт в Excel: символ рубля и денежный тип поля

Сообщение vitaly_l » 05.07.2017 09:39:08

Да абсолютно понятно, что проблема в шрифтах, т.к. символ рубля, присутствует только в одном шрифте в мире (хотя может сейчас уже и больше). Посмотрите его(символа рубля) кодировку в этом шрифте и тогда сможете экспортировать.

.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3108
Зарегистрирован: 31.01.2012 16:41:41

Re: Экспорт в Excel: символ рубля и денежный тип поля

Сообщение wadman » 05.07.2017 10:39:29

vitaly_l писал(а):т.к. символ рубля, присутствует только в одном шрифте в мире

В любом юникодном шрифте есть символ рубля изначально. ₽

А тут проблема в кодировке строки форматирования передаваемой из делфи/лазаруса.
wadman
новенький
 
Сообщения: 74
Зарегистрирован: 18.10.2016 15:54:28

Re: Экспорт в Excel: символ рубля и денежный тип поля

Сообщение vitaly_l » 05.07.2017 11:37:54

wadman писал(а):В любом юникодном шрифте есть символ рубля изначально. ₽
А тут проблема в кодировке строки форматирования передаваемой из делфи/лазаруса.

Этот сайт возвращает UTF-8, и Лазарус работает с UTF-8 по умолчанию. Соответственно, сбой либо "до" либо "после". Нужно смотреть в самих документах. Они в какой кодировке на входе и на выходе? Какие шрифты там заявлены на входе и на выходе?
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3108
Зарегистрирован: 31.01.2012 16:41:41

Re: Экспорт в Excel: символ рубля и денежный тип поля

Сообщение wadman » 05.07.2017 12:51:12

vitaly_l писал(а):
wadman писал(а):В любом юникодном шрифте есть символ рубля изначально. ₽
А тут проблема в кодировке строки форматирования передаваемой из делфи/лазаруса.

Этот сайт возвращает UTF-8, и Лазарус работает с UTF-8 по умолчанию. Соответственно, сбой либо "до" либо "после". Нужно смотреть в самих документах. Они в какой кодировке на входе и на выходе? Какие шрифты там заявлены на входе и на выходе?

У меня встречный вопрос: вы с эксель работали? :-) Просто вопросы и предположения по типу гадания на кофейной гуще...
Проблема не в шрифтах экселя, а в формате строки, задаваемой формат колонки. Она должна быть в анси, а не в юникоде, утф и т.п.
wadman
новенький
 
Сообщения: 74
Зарегистрирован: 18.10.2016 15:54:28

Re: Экспорт в Excel: символ рубля и денежный тип поля

Сообщение vitaly_l » 05.07.2017 13:06:13

wadman писал(а):вы с эксель работали?

нет, максимум экспортировал таблицу (как в опен офс).
wadman писал(а):Проблема не в шрифтах экселя,

не экселя, а файлов экселя, т.к. они могут хранить шрифты или использовать шрифты в которых нет символа ₽.
wadman писал(а):Она должна быть в анси, а не в юникоде, утф и т.п.

тогда вообще-то получается технически невозможно решить, т.к. в анси нет символа ₽
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3108
Зарегистрирован: 31.01.2012 16:41:41

Re: Экспорт в Excel: символ рубля и денежный тип поля

Сообщение wadman » 05.07.2017 15:57:34

vitaly_l писал(а):тогда вообще-то получается технически невозможно решить, т.к. в анси нет символа ₽

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

Вкратце : страдает именно передача формата строкой, закодированной юникодом.
wadman
новенький
 
Сообщения: 74
Зарегистрирован: 18.10.2016 15:54:28

Re: Экспорт в Excel: символ рубля и денежный тип поля

Сообщение vitaly_l » 05.07.2017 16:18:55

wadman писал(а):у вас нет понимания

у меня нет реального примера и кода. без них я строю предположения, равно как и все в этом топике.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3108
Зарегистрирован: 31.01.2012 16:41:41

Re: Экспорт в Excel: символ рубля и денежный тип поля

Сообщение wadman » 05.07.2017 16:46:32

vitaly_l писал(а):у меня нет реального примера и кода. без них я строю предположения, равно как и все в этом топике.

На счет "всех" это преувеличение. :) ссылку на рабочий пример я выше привел.
wadman
новенький
 
Сообщения: 74
Зарегистрирован: 18.10.2016 15:54:28

Re: Экспорт в Excel: символ рубля и денежный тип поля

Сообщение LearnMagic » 06.07.2017 10:01:52

Moneo писал(а): ... Пробовал менять доллар на ₽, но выводит в ячейку 1/2 и при входе в ячейку 1/2 исчезает ...

Открываем excel, влкючаем запись макроса, меняем формат ячейки. Смотрим строку формата и копируем себе в код. Точную строку не скажу, т.к. excel 2016 и win7 x64 rus не обладаю.
LearnMagic
новенький
 
Сообщения: 36
Зарегистрирован: 10.11.2016 23:13:38


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Google Adsense [Bot] и гости: 7

Рейтинг@Mail.ru