Название: Чтение из ячейки excel, QVariant возвращает qlonglong, а не double Отправлено: 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 на данном форуме проводится чистка давно не заходивших что ли? Ваша учетная запись не найдена, завел себя по новой. Название: Re: Чтение из ячейки excel, QVariant возвращает qlonglong, а не double Отправлено: __Heaven__ от Апрель 21, 2017, 12:10 Я бы начал поиски с настроек локализации и символа разделителя
Название: Re: Чтение из ячейки excel, QVariant возвращает qlonglong, а не double Отправлено: PavelVX от Апрель 22, 2017, 05:56 Специально посмотрел, все одинаковое.
Если в аксесе запросить, то тоже правильно выводит :( MsgBox ws.Cells(5, cost) выведет 12.6488 Название: Re: Чтение из ячейки excel, QVariant возвращает qlonglong, а не double Отправлено: __Heaven__ от Апрель 24, 2017, 10:55 Попробуйте свойство Value2 ещё посмотреть.
Также рекомендую создать vba макрос в книге с тем же содержимым, что и в c++ коде и проверить как он работает на тех же машинах |