05.02.2015, 14:25 | #1 |
Участник
|
Загрузка данных из Excel COM
Добрый день, ситуация такая: есть файл Excel в котором есть ячейка с числом 1000. Данные загружаются в аксапту, и затем используются для создания журнала. И в при одном варианте загрузки мы получаем 1000,00, а при другом 1. Данные дергаем вот так :
X++: Fields.itemIdx( ).Value() X++: anytype value() { COMVariant value; real tmp; value = field.value(); switch (value.variantType()) { case COMVariantType::VT_I2: return value.byte(); case COMVariantType::VT_I4: return value.int(); case COMVariantType::VT_R4, COMVariantType::VT_R8: //VSN003_FD_022_boss_import_dPul --> tmp = value.double(); if (tmp == 0) tmp = value.float(); //VSN003_FD_022_boss_import_dPul <-- return tmp; case COMVariantType::VT_CY: return value.currency(); case COMVariantType::VT_DATE: return value.date(); case COMVariantType::VT_BSTR: return value.bStr(); case COMVariantType::VT_BOOL: return value.boolean(); case COMVariantType::VT_DECIMAL: return value.decimal(); case COMVariantType::VT_I1: return value.byte(); case COMVariantType::VT_UI1: return value.uInt(); case COMVariantType::VT_UI2: return value.uShort(); case COMVariantType::VT_UI4: return value.uLong(); } return ''; } P.S. Формат ячейки : если поменять формат ячейки на числовой, то все работает правильно. Но это ведь не дает ответ, почему в одном варианте загрузки все работает и со старым форматом ячейки! Последний раз редактировалось АртемМелихов; 05.02.2015 в 14:39. Причина: косяк |
|
Теги |
excel com формат |
|
|