Russian Qt Forum
Апрель 19, 2024, 02:13 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Чтение из ячейки excel, QVariant возвращает qlonglong, а не double  (Прочитано 4373 раз)
PavelVX
Гость
« : Апрель 21, 2017, 11:16 »

Добрый день!
Подскажите, в какую сторону копать.
Win7 x64!
Читаю данные из excel.
В файлике экселя в ячейку внесено 12.6488р

Написал функцию, возвращает QVariant:
...
    QAxObject* Cell1 = ActiveSheet->querySubObject("Cells(QVariant&,QVariant&)", lrow, lcol);
    return Cell1->property("Value");

Запускаю, на выходе получаю 126488!
qDebug выводит QVariant(qlonglong, 126488)!

Удивляюсь, перехожу за соседний комп: win7 x32.
Код компилирую, запускаю:
qDebug выводит QVariant(double, 12.6488). Все логично и нормально.

Где искать косяк и почему так?
Возможно причина не в разрядности ОС, но других различий я не нашел.

PS на данном форуме проводится чистка давно не заходивших что ли? Ваша учетная запись не найдена, завел себя по новой.
Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #1 : Апрель 21, 2017, 12:10 »

Я бы начал поиски с настроек локализации и символа разделителя
Записан
PavelVX
Гость
« Ответ #2 : Апрель 22, 2017, 05:56 »

Специально посмотрел, все одинаковое.
Если в аксесе запросить, то тоже правильно выводит Грустный
    MsgBox ws.Cells(5, cost)
выведет 12.6488
Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #3 : Апрель 24, 2017, 10:55 »

Попробуйте свойство Value2 ещё посмотреть.
Также рекомендую создать vba макрос в книге с тем же содержимым, что и в c++ коде и проверить как он работает на тех же машинах
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.047 секунд. Запросов: 22.