![]() |
#2 |
Участник
|
Подниму тему.
Если значение ячейки состоит только из цифр, то почему-то после смены Excel'ем формата у ячейки с числового на текстовый, тип значения ячейки автоматически не преобразуется из COMVariantType::VT_R8 в COMVariantType::VT_BSTR. Хотя визуально Excel начинает отображать это значение как текстовое: без дробной части и с выравниванием по левому краю! Правда без стандартного предупреждения в виде зелёненького уголочка "Число сохранено как текст". Если выполнить двойной щелчок по ячейке то такое предупреждение появится и тип значения сменится на COMVariantType::VT_BSTR. При попытке программно прочитать такую ячейку возникает описанная ТС ситуация: Цитата:
Сообщение от somebody
![]() Проблема возникает, если текст в ячейке состоит полностью из цифр. Cell.value() и cell.value2() для таких значений возвращают тип COMVariantType::VT_R8, т. е. число с плавающей точкой, и .bstr() даёт пустую строку. А хотелось бы получить COMVariantType::VT_BSTR. Присваивание типа не проходит, т. е.
cv.variantType(COMVariantType::VT_BSTR); cv = cell.value(); не помогает. |
|
Теги |
excel, импорт, импорт из excel |
|
|