26.11.2004, 18:14 | #1 |
Участник
|
чтение из Excel текста, состоящего из цифр
Hello All!
Читаем текстовые ячейки из Excel, используя COM, примерно так: class ... extends SysExcelImport ... COM cell; COM cellsOnSheet; ... currentWorkSheet = this.openWorkSheet(curSheetNo); // метод класса SysExcelImport cellsOnSheet = currentWorkSheet.cells(); //Gets all cells on sheet cell = new COM(); cell = COM::createFromVariant(cellsOnSheet.item(rowNo, colNo)); Проблема возникает, если текст в ячейке состоит полностью из цифр. Cell.value() и cell.value2() для таких значений возвращают тип COMVariantType::VT_R8, т. е. число с плавающей точкой, и .bstr() даёт пустую строку. А хотелось бы получить COMVariantType::VT_BSTR. Присваивание типа не проходит, т. е. cv.variantType(COMVariantType::VT_BSTR); cv = cell.value(); не помогает. Могу, конечно, брать .double(), делать num2str, убирать разделители тысяч и '.00'. Но не уверен, что это универсальный метод. Возможно, я просто что-то не так делаю. Кто-нибудь сталкивался с подобной проблемой? Как заставить читать именно текст? |
|
Теги |
excel, импорт, импорт из excel |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|