чтение из 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'. Но не уверен, что это универсальный метод. Возможно, я просто что-то не так делаю.
Кто-нибудь сталкивался с подобной проблемой? Как заставить читать именно текст?
|